10个超级有用的PHP代码片段(建议收藏)

 4512

本文主要介绍了10个超级有用值得收藏的PHP代码片段,本文讲解了黑名单过滤、随机颜色生成器、从网络下载文件、强制下载文件、通过Email显示用户的Gravatar头像等内容,需要的朋友可以参考下。


10个超级有用的PHP代码片段(建议收藏)


尽管PHP经常被人诟病,被人贬低,被人当玩笑开,事实证明,PHP是全世界网站开发中使用率最高的编程语言。PHP最大的缺点是太简单,语法不严谨,框架体系很弱,但这也是它最大的优点,一个有点编程背景的普通人,只需要学习PHP半天时间,就可以上手开始开发web应用了。

网上有人总结几种编程语言的特点,我觉得也挺有道理的:

PHP 就是: Quick and Dirty

Java 就是: Beauty and Slowly

Ruby 就是: Quick and Beauty

python 就是: Quick and Simple

在PHP的流行普及中,网上总结出了很多实用的PHP代码片段,这些代码片段在当你遇到类似的问题时,粘贴过去就可以使用,非常的高效,非常的省时省力。将这些程序员前辈总结出的优秀代码放到自己的知识库中,是一个善于学习的程序员的好习惯。


一、黑名单过滤

  1. function is_spam($text, $file, $split = ':', $regex = false){ 
  2.  
  3.     $handle = fopen($file, 'rb'); 
  4.  
  5.     $contents = fread($handle, filesize($file)); 
  6.  
  7.     fclose($handle); 
  8.  
  9.     $lines = explode("n", $contents); 
  10.  
  11.     $arr = array(); 
  12.  
  13.     foreach($lines as $line){ 
  14.  
  15.         list($word, $count) = explode($split, $line); 
  16.  
  17.         if($regex) 
  18.  
  19.             $arr[$word] = $count; 
  20.  
  21.         else
  22.  
  23.             $arr[preg_quote($word)] = $count; 
  24.  
  25.     } 
  26.  
  27.     preg_match_all("~".implode('|', array_keys($arr))."~", $text, $matches); 
  28.  
  29.     $temp = array(); 
  30.  
  31.     foreach($matches[0] as $match){ 
  32.  
  33.         if(!in_array($match, $temp)){ 
  34.  
  35.             $temp[$match] = $temp[$match] + 1; 
  36.  
  37.             if($temp[$match] >= $arr[$word]) 
  38.  
  39.                 return true; 
  40.  
  41.         } 
  42.  
  43.     } 
  44.  
  45.     return false; 
  46.  
  47. }
  48. $file = 'spam.txt'; 
  49.  
  50. $str = 'This string has cat, dog word'; 
  51.  
  52. if(is_spam($str, $file)) 
  53.  
  54.     echo 'this is spam'; 
  55.  
  56. else
  57.  
  58.     echo 'this is not spam';
  59.  
  60. ab:3
  61.  
  62. dog:3
  63.  
  64. cat:2
  65.  
  66. monkey:2


二、随机颜色生成器

  1. function randomColor() { 
  2.     $str = '#'; 
  3.     for($i = 0 ; $i < 6 ; $i++) { 
  4.         $randNum = rand(0 , 15); 
  5.         switch ($randNum) { 
  6.             case 10: $randNum = 'A'; break; 
  7.             case 11: $randNum = 'B'; break; 
  8.             case 12: $randNum = 'C'; break; 
  9.             case 13: $randNum = 'D'; break; 
  10.             case 14: $randNum = 'E'; break; 
  11.             case 15: $randNum = 'F'; break; 
  12.         } 
  13.         $str .= $randNum; 
  14.     } 
  15.     return $str; 
  16. } 
  17. $color = randomColor();


三、从网络下载文件

  1. set_time_limit(0); 
  2. // Supports all file types 
  3. // URL Here: 
  4. $url = 'http://somsite.com/some_video.flv'; 
  5. $pi = pathinfo($url); 
  6. $ext = $pi['extension']; 
  7. $name = $pi['filename'];
  8. // create a new cURL resource 
  9. $ch = curl_init();
  10. // set URL and other appropriate options 
  11. curl_setopt($ch, CURLOPT_URL, $url); 
  12. curl_setopt($ch, CURLOPT_HEADER, false); 
  13. curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); 
  14. curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
  15. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
  16. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  17. // grab URL and pass it to the browser 
  18. $opt = curl_exec($ch);
  19. // close cURL resource, and free up system resources 
  20. curl_close($ch);
  21. $saveFile = $name.'.'.$ext; 
  22. if(preg_match("/[^0-9a-z._-]/i", $saveFile)) 
  23.     $saveFile = md5(microtime(true)).'.'.$ext;
  24. $handle = fopen($saveFile, 'wb'); 
  25. fwrite($handle, $opt); 
  26. fclose($handle);


四、Alexa/Google Page Rank(Google已经停止更新PR)

  1. function page_rank($page, $type = 'alexa'){ 
  2.     switch($type){ 
  3.         case 'alexa': 
  4.             $url = 'http://alexa.com/siteinfo/'; 
  5.             $handle = fopen($url.$page, 'r'); 
  6.         break; 
  7.         case 'google': 
  8.             $url = 'http://google.com/search?client=navclient-auto&ch=6-1484155081&features=Rank&q=info:'; 
  9.             $handle = fopen($url.'http://'.$page, 'r'); 
  10.         break; 
  11.     } 
  12.     $content = stream_get_contents($handle); 
  13.     fclose($handle); 
  14.     $content = preg_replace("~(n|t|ss+)~",'', $content); 
  15.     switch($type){ 
  16.         case 'alexa': 
  17.             if(preg_match('~<p class="data (down|up)"><img.+?>(.+?) </p>~im',$content,$matches)){ 
  18.                 return $matches[2]; 
  19.             }else{ 
  20.                 return FALSE; 
  21.             } 
  22.         break; 
  23.         case 'google': 
  24.             $rank = explode(':',$content); 
  25.             if($rank[2] != '') 
  26.                 return $rank[2]; 
  27.             else
  28.                 return FALSE; 
  29.         break; 
  30.         default: 
  31.             return FALSE; 
  32.         break; 
  33.     } 
  34. } 
  35. // Alexa Page Rank: 
  36. echo 'Alexa Rank: '.page_rank('techug.com'); 
  37. echo '
  38. '; 
  39. // Google Page Rank 
  40. echo 'Google Rank: '.page_rank('techug.com', 'google');


五、强制下载文件

  1. $filename = $_GET['file']; //Get the fileid from the URL
  2. // Query the file ID
  3. $query = sprintf("SELECT * FROM tableName WHERE id = '%s'",mysql_real_escape_string($filename));
  4. $sql = mysql_query($query);
  5. if(mysql_num_rows($sql) > 0){
  6.     $row = mysql_fetch_array($sql);
  7.     // Set some headers
  8.     header("Pragma: public");
  9.     header("Expires: 0");
  10.     header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  11.     header("Content-Type: application/force-download");
  12.     header("Content-Type: application/octet-stream");
  13.     header("Content-Type: application/download");
  14.     header("Content-Disposition: attachment; filename=".basename($row['FileName']).";");
  15.     header("Content-Transfer-Encoding: binary");
  16.     header("Content-Length: ".filesize($row['FileName']));
  17.  
  18.     @readfile($row['FileName']);
  19.     exit(0);
  20. }else{
  21.     header("Location: /");
  22.     exit;
  23. }


六、通过Email显示用户的Gravatar头像

  1. $gravatar_link = 'http://www.gravatar.com/avatar/' . md5($comment_author_email) . '?s=32';
  2.   echo '<img src="' . $gravatar_link . '" />';


七、通过cURL获取RSS订阅数

  1. $ch = curl_init();
  2. curl_setopt($ch,CURLOPT_URL,'https://feedburner.google.com/api/awareness/1.0/GetFeedData?id=7qkrmib4r9rscbplq5qgadiiq4');
  3. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  4. curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,2);
  5. $content = curl_exec($ch);
  6. $subscribers = get_match('/circulation="(.*)"/isU',$content);
  7. curl_close($ch);


八、时间差异计算函数

  1. function ago($time)
  2. {
  3.     $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
  4.     $lengths = array("60","60","24","7","4.35","12","10");
  5.     $now = time();
  6.     $difference     = $now - $time;
  7.     $tense         = "ago";
  8.     for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
  9.         $difference /= $lengths[$j];
  10.     }
  11.     $difference = round($difference);
  12.     if($difference != 1) {
  13.         $periods[$j].= "s";
  14.     }
  15.     return "$difference $periods[$j] 'ago' ";
  16. }


九、裁剪图片

  1. $filename= "test.jpg";
  2. list($w, $h, $type, $attr) = getimagesize($filename);
  3. $src_im = imagecreatefromjpeg($filename);
  4. $src_x = '0';   // begin x
  5. $src_y = '0';   // begin y
  6. $src_w = '100'; // width
  7. $src_h = '100'; // height
  8. $dst_x = '0';   // destination x
  9. $dst_y = '0';   // destination y
  10. $dst_im = imagecreatetruecolor($src_w, $src_h);
  11. $white = imagecolorallocate($dst_im, 255, 255, 255);
  12. imagefill($dst_im, 0, 0, $white);
  13. imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h);
  14. header("Content-type: image/png");
  15. imagepng($dst_im);
  16. imagedestroy($dst_im);


十、检查网站是否宕机

  1. function Visit($url){
  2.        $agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";$ch=curl_init();
  3.        curl_setopt ($ch, CURLOPT_URL,$url );
  4.        curl_setopt($ch, CURLOPT_USERAGENT, $agent);
  5.        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  6.        curl_setopt ($ch,CURLOPT_VERBOSE,false);
  7.        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  8.        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
  9.        curl_setopt($ch,CURLOPT_SSLVERSION,3);
  10.        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
  11.        $page=curl_exec($ch);
  12.        //echo curl_error($ch);
  13.        $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  14.        curl_close($ch);
  15.        if($httpcode>=200 && $httpcode<300) return true;
  16.        else return false;
  17. }
  18. if (Visit("http://www.google.com"))
  19.        echo "Website OK"."n";
  20. else
  21.        echo "Website DOWN";


TAG标签:
本文网址:https://www.zztuku.com/index.php/detail-9026.html
站长图库 - 10个超级有用的PHP代码片段(建议收藏)
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐