创新路
我们一直在努力

10个超级有用、必须收藏的PHP代码样例

  1. 一、黑名单过滤

  2. function is_spam($text, $file, $split = ':', $regex = false){ 

  3.     $handle = fopen($file, 'rb'); 

  4.     $contents = fread($handle, filesize($file)); 

  5.     fclose($handle); 

  6.     $lines = explode("n", $contents); 

  7.     $arr = array(); 

  8.     foreach($lines as $line){ 

  9.         list($word, $count) = explode($split, $line); 

  10.         if($regex) 

  11.             $arr[$word] = $count; 

  12.         else 

  13.             $arr[preg_quote($word)] = $count; 

  14.     } 

  15.     preg_match_all("~".implode('|', array_keys($arr))."~", $text, $matches); 

  16.     $temp = array(); 

  17.     foreach($matches[0] as $match){ 

  18.         if(!in_array($match, $temp)){ 

  19.             $temp[$match] = $temp[$match] + 1; 

  20.             if($temp[$match] >= $arr[$word]) 

  21.                 return true; 

  22.         } 

  23.     } 

  24.     return false; 

  25. } 

  26.  

  27. $file = 'spam.txt'; 

  28. $str = 'This string has cat, dog word'; 

  29. if(is_spam($str, $file)) 

  30.     echo 'this is spam'; 

  31. else 

  32.     echo 'this is not spam';

  33. ab:3

  34. dog:3

  35. cat:2

  36. monkey:2

  37. 二、随机颜色生成器

  38.  

  39. function randomColor() { 

  40.     $str = '#'; 

  41.     for($i = 0 ; $i < 6 ; $i++) { 

  42.         $randNum = rand(0 , 15); 

  43.         switch ($randNum) { 

  44.             case 10: $randNum = 'A'; break; 

  45.             case 11: $randNum = 'B'; break; 

  46.             case 12: $randNum = 'C'; break; 

  47.             case 13: $randNum = 'D'; break; 

  48.             case 14: $randNum = 'E'; break; 

  49.             case 15: $randNum = 'F'; break; 

  50.         } 

  51.         $str .= $randNum; 

  52.     } 

  53.     return $str; 

  54. } 

  55. $color = randomColor();

  56. 三、从网络下载文件

  57.  

  58. set_time_limit(0); 

  59. // Supports all file types 

  60. // URL Here: 

  61. $url = 'http://somsite.com/some_video.flv'; 

  62. $pi = pathinfo($url); 

  63. $ext = $pi['extension']; 

  64. $name = $pi['filename']; 

  65.  

  66. // create a new cURL resource 

  67. $ch = curl_init(); 

  68.  

  69. // set URL and other appropriate options 

  70. curl_setopt($ch, CURLOPT_URL, $url); 

  71. curl_setopt($ch, CURLOPT_HEADER, false); 

  72. curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); 

  73. curl_setopt($ch, CURLOPT_AUTOREFERER, true); 

  74. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

  75. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

  76.  

  77. // grab URL and pass it to the browser 

  78. $opt = curl_exec($ch); 

  79.  

  80. // close cURL resource, and free up system resources 

  81. curl_close($ch); 

  82.  

  83. $saveFile = $name.'.'.$ext; 

  84. if(preg_match("/[^0-9a-z._-]/i", $saveFile)) 

  85.     $saveFile = md5(microtime(true)).'.'.$ext; 

  86.  

  87. $handle = fopen($saveFile, 'wb'); 

  88. fwrite($handle, $opt); 

  89. fclose($handle);

  90. 四、Alexa/Google Page Rank

  91.  

  92. function page_rank($page, $type = 'alexa'){ 

  93.     switch($type){ 

  94.         case 'alexa': 

  95.             $url = 'http://alexa.com/siteinfo/'; 

  96.             $handle = fopen($url.$page, 'r'); 

  97.         break; 

  98.         case 'google': 

  99.             $url = 'http://google.com/search?client=navclient-auto&ch=6-1484155081&features=Rank&q=info:'; 

  100.             $handle = fopen($url.'http://'.$page, 'r'); 

  101.         break; 

  102.     } 

  103.     $content = stream_get_contents($handle); 

  104.     fclose($handle); 

  105.     $content = preg_replace("~(n|t|ss+)~",'', $content); 

  106.     switch($type){ 

  107.         case 'alexa': 

  108.             if(preg_match('~<div class="data (down|up)"><img.+?>(.+?) </div>~im',$content,$matches)){ 

  109.                 return $matches[2]; 

  110.             }else{ 

  111.                 return FALSE; 

  112.             } 

  113.         break; 

  114.         case 'google': 

  115.             $rank = explode(':',$content); 

  116.             if($rank[2] != '') 

  117.                 return $rank[2]; 

  118.             else 

  119.                 return FALSE; 

  120.         break; 

  121.         default: 

  122.             return FALSE; 

  123.         break; 

  124.     } 

  125. } 

  126. // Alexa Page Rank: 

  127. echo 'Alexa Rank: '.page_rank('techug.com'); 

  128. echo '

  129. '; 

  130. // Google Page Rank 

  131. echo 'Google Rank: '.page_rank('techug.com', 'google');

  132. 五、强制下载文件

  133.  

  134. $filename = $_GET['file']; //Get the fileid from the URL 

  135. // Query the file ID 

  136. $query = sprintf("SELECT * FROM tableName WHERE id = '%s'",mysql_real_escape_string($filename)); 

  137. $sql = mysql_query($query); 

  138. if(mysql_num_rows($sql) > 0){ 

  139.     $row = mysql_fetch_array($sql); 

  140.     // Set some headers 

  141.     header("Pragma: public"); 

  142.     header("Expires: 0"); 

  143.     header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 

  144.     header("Content-Type: application/force-download"); 

  145.     header("Content-Type: application/octet-stream"); 

  146.     header("Content-Type: application/download"); 

  147.     header("Content-Disposition: attachment; filename=".basename($row['FileName']).";"); 

  148.     header("Content-Transfer-Encoding: binary"); 

  149.     header("Content-Length: ".filesize($row['FileName'])); 

  150.  

  151.     @readfile($row['FileName']); 

  152.     exit(0); 

  153. }else{ 

  154.     header("Location: /"); 

  155.     exit; 

  156. }

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

  158.  

  159.  $gravatar_link = 'http://www.gravatar.com/avatar/' . md5($comment_author_email) . '?s=32';

  160.   echo '<img src="' . $gravatar_link . '" />';

  161. 七、通过cURL获取RSS订阅数

  162.  

  163. $ch = curl_init();

  164. curl_setopt($ch,CURLOPT_URL,'https://feedburner.google.com/api/awareness/1.0/GetFeedData?id=7qkrmib4r9rscbplq5qgadiiq4');

  165. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

  166. curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,2);

  167. $content = curl_exec($ch);

  168. $subscribers = get_match('/circulation="(.*)"/isU',$content);

  169. curl_close($ch);

  170. 八、时间差异计算函数

  171.  

  172. function ago($time)

  173. {

  174.    $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");

  175.    $lengths = array("60","60","24","7","4.35","12","10");

  176.  

  177.    $now = time();

  178.  

  179.        $difference     = $now  $time;

  180.        $tense         = "ago";

  181.  

  182.    for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {

  183.        $difference /= $lengths[$j];

  184.    }

  185.  

  186.    $difference = round($difference);

  187.  

  188.    if($difference != 1) {

  189.        $periods[$j].= "s";

  190.    }

  191.  

  192.    return "$difference $periods[$j] 'ago' ";

  193. }

  194. 九、裁剪图片

  195.  

  196. $filename= "test.jpg";

  197. list($w, $h, $type, $attr) = getimagesize($filename);

  198. $src_im = imagecreatefromjpeg($filename);

  199.  

  200. $src_x = '0';   // begin x

  201. $src_y = '0';   // begin y

  202. $src_w = '100'; // width

  203. $src_h = '100'; // height

  204. $dst_x = '0';   // destination x

  205. $dst_y = '0';   // destination y

  206.  

  207. $dst_im = imagecreatetruecolor($src_w, $src_h);

  208. $white = imagecolorallocate($dst_im, 255, 255, 255);

  209. imagefill($dst_im, 0, 0, $white);

  210.  

  211. imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h);

  212.  

  213. header("Content-type: image/png");

  214. imagepng($dst_im);

  215. imagedestroy($dst_im);

  216. 十、检查网站是否宕机

  217.  

  218. function Visit($url){

  219.        $agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";$ch=curl_init();

  220.        curl_setopt ($ch, CURLOPT_URL,$url );

  221.        curl_setopt($ch, CURLOPT_USERAGENT, $agent);

  222.        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

  223.        curl_setopt ($ch,CURLOPT_VERBOSE,false);

  224.        curl_setopt($ch, CURLOPT_TIMEOUT, 5);

  225.        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);

  226.        curl_setopt($ch,CURLOPT_SSLVERSION,3);

  227.        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);

  228.        $page=curl_exec($ch);

  229.        //echo curl_error($ch);

  230.        $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

  231.        curl_close($ch);

  232.        if($httpcode>=200 && $httpcode<300) return true;

  233.        else return false;

  234. }

  235. if (Visit("http://www.google.com"))

  236.        echo "Website OK"."n";

  237. else

  238.        echo "Website DOWN";

未经允许不得转载:天府数据港官方信息博客 » 10个超级有用、必须收藏的PHP代码样例

客官点个赞呗! (0)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机