分享经常用到的21个PHP函数代码段(上)

开发 后端
本文介绍的是在我们实际工作中,经常用到的21个函数代码段。希望对你有帮助,一起来看。

下面介绍的是,在PHP开发中,经常用到的21个函数代码段,当我们用到的时候,就可以直接用了。

1. PHP可阅读随机字符串

此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。

 

  1. /**************  
  2. *@length – length of random string (must be a multiple of 2)  
  3. **************/ 
  4. function readable_random_string($length = 6){  
  5. $conso=array(“b”,”c”,”d”,”f”,”g”,”h”,”j”,”k”,”l”,  
  6. “m”,”n”,”p”,”r”,”s”,”t”,”v”,”w”,”x”,”y”,”z”);  
  7. $vocal=array(“a”,”e”,”i”,”o”,”u”);  
  8. $password=”";  
  9. srand ((double)microtime()*1000000);  
  10. $max = $length/2;  
  11. for($i=1; $i<=$max$i++)  
  12. {  
  13. $password.=$conso[rand(0,19)];  
  14. $password.=$vocal[rand(0,4)];  
  15. }  
  16. return $password;  

 

2. PHP生成一个随机字符串

如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。

 

  1. /*************  
  2. *@l – length of random string  
  3. */ 
  4. function generate_rand($l){  
  5. $c= “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789″;  
  6. srand((double)microtime()*1000000);  
  7. for($i=0; $i<$l$i++) {  
  8. $rand.= $c[rand()%strlen($c)];  
  9. }  
  10. return $rand;  

 

3. PHP编码电子邮件地址

使用此代码,可以将任何电子邮件地址编码为 html 字符实体,以防止被垃圾邮件程序收集。

 

  1. function encode_email($email=’info@domain.com’, $linkText=’Contact Us’, 
  2. $attrs =’class=”emailencoder”‘ )  
  3. {  
  4. // remplazar aroba y puntos  
  5. $email = str_replace(‘@’, ‘&#64;’, $email);  
  6. $email = str_replace(‘.’, ‘&#46;’, $email);  
  7. $email = str_split($email, 5);  
  8. $linkText = str_replace(‘@’, ‘&#64;’, $linkText);  
  9. $linkText = str_replace(‘.’, ‘&#46;’, $linkText);  
  10. $linkText = str_split($linkText, 5);  
  11. $part1 = ‘<a href=”ma’;  
  12. $part2 = ‘ilto&#58;’;  
  13. $part3 = ‘” ‘. $attrs .’ >’;  
  14. $part4 = ‘</a>’;  
  15. $encoded = ‘<script type=”text/javascript”>’;  
  16. $encoded .= “document.write(‘$part1′);”;  
  17. $encoded .= “document.write(‘$part2′);”;  
  18. foreach($email as $e)  
  19. {  
  20. $encoded .= “document.write(‘$e’);”;  
  21. }  
  22. $encoded .= “document.write(‘$part3′);”;  
  23. foreach($linkText as $l)  
  24. {  
  25. $encoded .= “document.write(‘$l’);”;  
  26. }  
  27. $encoded .= “document.write(‘$part4′);”;  
  28. $encoded .= ‘</script>’;  
  29. return $encoded;  

 

4. PHP验证邮件地址

电子邮件验证也许是中最常用的网页表单验证,此代码除了验证电子邮件地址,也可以选择检查邮件域所属 DNS 中的 MX 记录,使邮件验证功能更加强大。

 

  1. function is_valid_email($email$test_mx = false)  
  2. {  
  3. if(eregi(“^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$”, $email))  
  4. if($test_mx)  
  5. {  
  6. list($username$domain) = split(“@”, $email);  
  7. return getmxrr($domain$mxrecords);  
  8. }  
  9. else 
  10. return true;  
  11. else 
  12. return false;  

 

5. PHP列出目录内容

 

  1. function list_files($dir)  
  2. {  
  3. if(is_dir($dir))  
  4. {  
  5. if($handle = opendir($dir))  
  6. {  
  7. while(($file = readdir($handle)) !== false)  
  8. {  
  9. if($file != “.” && $file != “..” && $file != “Thumbs.db”)  
  10. {  
  11. echo ‘<a target=”_blank” href=”‘.$dir.$file.’”>’.$file.’</a><br>’.”\n”;  
  12. }  
  13. }  
  14. closedir($handle);  
  15. }  
  16. }  

 

#p#

6. PHP销毁目录

删除一个目录,包括它的内容。

 

  1. /*****  
  2. *@dir – Directory to destroy  
  3. *@virtual[optional]- whether a virtual directory  
  4. */ 
  5. function destroyDir($dir$virtual = false)  
  6. {  
  7. $ds = DIRECTORY_SEPARATOR;  
  8. $dir = $virtual ? realpath($dir) : $dir;  
  9. $dir = substr($dir, -1) == $ds ? substr($dir, 0, -1) : $dir;  
  10. if (is_dir($dir) && $handle = opendir($dir))  
  11. {  
  12. while ($file = readdir($handle))  
  13. {  
  14. if ($file == ‘.’ || $file == ‘..’)  
  15. {  
  16. continue;  
  17. }  
  18. elseif (is_dir($dir.$ds.$file))  
  19. {  
  20. destroyDir($dir.$ds.$file);  
  21. }  
  22. else 
  23. {  
  24. unlink($dir.$ds.$file);  
  25. }  
  26. }  
  27. closedir($handle);  
  28. rmdir($dir);  
  29. return true;  
  30. }  
  31. else 
  32. {  
  33. return false;  
  34. }  

 

7. PHP解析 JSON 数据

与大多数流行的 Web 服务如 twitter 通过开放 API 来提供数据一样,它总是能够知道如何解析 API 数据的各种传送格式,包括 JSON,XML 等等。

 

  1. $json_string=’{“id”:1,”name”:”foo”,”email”:”foo@foobar.com”,”interest”:["wordpress","php"]} ‘;  
  2. $obj=json_decode($json_string);  
  3. echo $obj->name; //prints foo  
  4. echo $obj->interest[1]; //prints php 

 

8. PHP解析 XML 数据

 

  1. //xml string  
  2. $xml_string=”<?xml version=’1.0′?>  
  3. <users>  
  4. <user id=’398′>  
  5. <name>Foo</name>  
  6. <email>foo@bar.com</name>  
  7. </user>  
  8. <user id=’867′>  
  9. <name>Foobar</name>  
  10. <email>foobar@foo.com</name>  
  11. </user>  
  12. </users>”;  
  13. //load the xml string using simplexml  
  14. $xml = simplexml_load_string($xml_string);  
  15. //loop through the each node of user  
  16. foreach ($xml->user as $user)  
  17. {  
  18. //access attribute  
  19. echo $user['id'], ‘ ‘;  
  20. //subnodes are accessed by -> operator  
  21. echo $user->name, ‘ ‘;  
  22. echo $user->email, ‘<br />’;  

 

9. PHP创建日志缩略名

创建用户友好的日志缩略名。

 

  1. function create_slug($string){  
  2. $slug=preg_replace(‘/[^A-Za-z0-9-]+/’, ‘-’, $string);  
  3. return $slug;  

 

10. PHP获取客户端真实 IP 地址

该函数将获取用户的真实 IP 地址,即便他使用代理服务器。

 

  1. function getRealIpAddr()  
  2. {  
  3. if (!emptyempty($_SERVER['HTTP_CLIENT_IP']))  
  4. {  
  5. $ip=$_SERVER['HTTP_CLIENT_IP'];  
  6. }  
  7. elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR']))  
  8. //to check ip is pass from proxy  
  9. {  
  10. $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];  
  11. }  
  12. else 
  13. {  
  14. $ip=$_SERVER['REMOTE_ADDR'];  
  15. }  
  16. return $ip;  

 

11. PHP强制性文件下载

为用户提供强制性的文件下载功能。

 

  1. /********************  
  2. *@file – path to file  
  3. */ 
  4. function force_download($file)  
  5. {  
  6. if ((isset($file))&&(file_exists($file))) {  
  7. header(“Content-length: “.filesize($file));  
  8. header(‘Content-Type: application/octet-stream’);  
  9. header(‘Content-Disposition: attachment; filename=”‘ . $file . ‘”‘);  
  10. readfile(“$file”);  
  11. else {  
  12. echo “No file selected”;  
  13. }  

 

经常用到的函数段,请看下一篇,

【编辑推荐】

  1. 介绍生成PHP网站页面静态化的方法
  2. php基础 关于继承的使用方法
  3. 分享PHP网站建设的流程与步骤
  4. PHP新手 学习基本语法
  5. 详细介绍Session在PHP中的使用
责任编辑:于铁 来源: 大家论坛
相关推荐

2011-07-07 17:27:54

PHP

2012-05-29 13:34:39

2015-08-19 09:15:11

C#程序员实用代码

2015-10-29 10:30:41

C#程序员实用代码

2009-12-02 20:29:30

PHP常用函数

2009-05-18 16:59:42

代码PHP编码

2011-07-10 00:02:39

PHP

2011-07-14 10:07:19

PHP

2009-12-03 16:54:36

PHP获取中国IP段

2011-07-11 10:24:09

PHP

2011-02-24 09:41:25

PHP代码

2019-12-25 15:40:28

内存Java虚拟机

2010-10-08 16:32:59

MySQL语句

2011-01-10 10:57:33

WebPHPJavaScript

2009-12-08 19:24:09

PHP函数索引

2021-08-19 08:31:46

云计算

2012-03-28 09:49:55

WEB特效

2009-12-08 14:00:11

PHP函数microt

2020-10-14 18:53:14

Python编程语言

2009-12-01 10:50:45

PHP函数requir
点赞
收藏

51CTO技术栈公众号