网站地图    收藏   

主页 > php专栏 > php应用 >

php开发中实用的PHP代码片段 - php高级应用

来源:自学PHP网    时间:2014-11-27 22:16 作者: 阅读:

[导读] 1 关键词高亮,代码如下:functionhighlight($sString,$aWords){if(!is_array($aWords)||emptyempty($aWords)||!is_string($sString)){returnfalse;}$sWords=implode(|,$aWords);returnpre...

php开发中实用的PHP代码片段

1.关键词高亮,代码如下:

  1. function highlight($sString$aWords) { 
  2.  if (!is_array ($aWords) || emptyempty ($aWords) || !is_string ($sString)) { 
  3.   return false; 
  4.  } 
  5.  
  6.  $sWords = implode ('|'$aWords); 
  7.   return preg_replace ('@b('.$sWords.')b@si''$1'$sString); 

2.获取你的Feedburner的用户,代码如下:

  1. function get_average_readers($feed_id,$interval = 7){ 
  2.  $today = date('Y-m-d'strtotime("now")); 
  3.  $ago = date('Y-m-d'strtotime("-".$interval." days")); 
  4.  $feed_url="https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=".$feed_id."&dates=".$ago.",".$today
  5.  $ch = curl_init(); 
  6.  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  7.  curl_setopt($ch, CURLOPT_URL, $feed_url); 
  8.  $data = curl_exec($ch); 
  9.  curl_close($ch); 
  10.  $xml = new SimpleXMLElement($data); 
  11.  $fb = $xml->feed->entry['circulation']; 
  12.  
  13.  $nb = 0; 
  14.  foreach($xml->feed->children() as $circ){ 
  15.   $nb += $circ['circulation']; 
  16.  } 
  17.  
  18.  return round($nb/$interval); 

3.自动生成密码,代码如下:

  1. function generatePassword($length=9, $strength=0) { 
  2.  $vowels = 'aeuy'
  3.  $consonants = 'bdghjmnpqrstvz'
  4.  if ($strength >= 1) { 
  5.   $consonants .= 'BDGHJLMNPQRSTVWXZ'
  6.  } 
  7.  if ($strength >= 2) { 
  8.   $vowels .= "AEUY"
  9.  } 
  10.  if ($strength >= 4) { 
  11.   $consonants .= '23456789'
  12.  } 
  13.  if ($strength >= 8 ) { 
  14.   $vowels .= '@#$%'
  15.  } 
  16.  
  17.  $password = ''
  18.  $alt = time() % 2; 
  19.  for ($i = 0; $i < $length$i++) { 
  20.   if ($alt == 1) { 
  21.    $password .= $consonants[(rand() % strlen($consonants))]; 
  22.    $alt = 0; 
  23.   } else { 
  24.    $password .= $vowels[(rand() % strlen($vowels))]; 
  25.    $alt = 1; 
  26.   } 
  27.  } 
  28.  return $password

4.压缩多个CSS文件,代码如下:

  1. header('Content-type: text/css'); 
  2. ob_start("compress"); 
  3. function compress($buffer) { 
  4.   /* remove comments */ 
  5.   $buffer = preg_replace('!/*[^*]**+([^/][^*]**+)*/!'''$buffer); 
  6.   /* remove tabs, spaces, newlines, etc. */ 
  7.   $buffer = str_replace(array("rn""r""n""t"'  ''    ''    '), ''$buffer); 
  8.   return $buffer
  9.  
  10. /* your css files */ 
  11. include('master.css'); 
  12. include('typography.css'); 
  13. include('grid.css'); 
  14. include('print.css'); 
  15. include('handheld.css'); 
  16.  
  17. ob_end_flush(); 

5.获取短网址,代码如下:

  1. function getTinyUrl($url) { 
  2.     return file_get_contents("http://tinyurl.com/api-create.php?url=".$url); 
  3. }  

6.根据生日计算年龄,代码如下:

  1. function age($date){ 
  2.  $year_diff = ''
  3.  $time = strtotime($date); 
  4.  if(FALSE === $time){ 
  5.   return ''
  6.  } 
  7.  
  8.  $date = date('Y-m-d'$time); 
  9.  list($year,$month,$day) = explode("-",$date); 
  10.  $year_diff = date("Y") – $year
  11.  $month_diff = date("m") – $month
  12.  $day_diff = date("d") – $day
  13.  if ($day_diff < 0 || $month_diff < 0) $year_diff–; 
  14.  
  15.  return $year_diff

7.计算执行时间,代码如下:

  1. //Create a variable for start time 
  2. $time_start = microtime(true); 
  3.  
  4. // Place your PHP/HTML/JavaScript/CSS/Etc. Here 
  5.  
  6. //Create a variable for end time 
  7. $time_end = microtime(true); 
  8. //Subtract the two times to get seconds 
  9. $time = $time_end - $time_start
  10.  
  11. echo 'Script took '.$time.' seconds to execute';8.PHP的维护模式 
  12. function maintenance($mode = FALSE){ 
  13.     if($mode){ 
  14.  
  15.         if(basename($_SERVER['SCRIPT_FILENAME']) != 'maintenance.php'){ 
  16.             header("Location: http://example.com/maintenance.php"); 
  17.             exit
  18.         } 
  19.     }else
  20.         if(basename($_SERVER['SCRIPT_FILENAME']) == 'maintenance.php'){ 
  21.             header("Location: http://example.com/"); 
  22.             exit
  23.         } 
  24.     } 

通过IP判断来源,这是一个非常实用的代码片段,可以帮助你通过IP来判断访客来源,下面的方法通过接收一个参数,然后返回IP所在地点,如果没有找到,则返回UNKNOWN,代码如下:

  1. function detect_city($ip) {  
  2.    
  3.         $default = 'UNKNOWN';  
  4.    
  5.         if (!is_string($ip) || strlen($ip) < 1 || $ip == '127.0.0.1' || $ip == 'localhost')  
  6.             $ip = '8.8.8.8';  
  7.    
  8.         $curlopt_useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)';  
  9.    
  10.         $url = 'http://ipinfodb.com/ip_locator.php?ip=' . urlencode($ip);  
  11.         $ch = curl_init();  
  12.    
  13.         $curl_opt = array(  
  14.             CURLOPT_FOLLOWLOCATION  => 1,  
  15.             CURLOPT_HEADER      => 0,  
  16.             CURLOPT_RETURNTRANSFER  => 1,  
  17.             CURLOPT_USERAGENT   => $curlopt_useragent,  
  18.             CURLOPT_URL       => $url,  
  19.             CURLOPT_TIMEOUT         => 1,  
  20.             CURLOPT_REFERER         => 'http://' . $_SERVER['HTTP_HOST'],  
  21.         );  
  22.    
  23.         curl_setopt_array($ch$curl_opt);  
  24.    
  25.         $content = curl_exec($ch);  
  26.    
  27.         if (!is_null($curl_info)) {  
  28.             $curl_info = curl_getinfo($ch);  
  29.         }  
  30.    
  31.         curl_close($ch);  
  32.    
  33.         if ( preg_match('{
  34. City : ([^<]*)
  35. }i'$content$regs) )  {  
  36.             $city = $regs[1];  
  37.         }  
  38.         if ( preg_match('{
  39. State/Province : ([^<]*)
  40. }i'$content$regs) )  {  
  41.             $state = $regs[1];  
  42.         }  
  43.    
  44.         if$city!='' && $state!='' ){  
  45.           $location = $city . ', ' . $state;  
  46.           return $location;  
  47.         }else{  
  48.           return $default;  
  49.         }  
  50.    
  51.     }  

判断一张图片的主色调,下面这个代码非常实用,能帮助你判断一张图片中的主色调,你可以分析任何图片,代码如下:

  1. $i = imagecreatefromjpeg("image.jpg");  
  2.    
  3. for ($x=0;$x$i);$x++) {  
  4.     for ($y=0;$y$i);$y++) {  
  5.         $rgb = imagecolorat($i,$x,$y);  
  6.         $r   = ($rgb >> 16) & 0xFF;  
  7.         $g   = ($rgb >>  & 0xFF;  
  8.         $b   = $rgb & 0xFF;  
  9.    
  10.         $rTotal += $r;  
  11.         $gTotal += $g;  
  12.         $bTotal += $b;  
  13.         $total++;  
  14.     }  
  15. }  
  16.    
  17. $rAverage = round($rTotal/$total);  
  18. $gAverage = round($gTotal/$total);  
  19. $bAverage = round($bTotal/$total); 

不显示PHP错误而发送电子邮件取代之,如果你不想在页面中显示PHP错误,也可以通过email来获取错误信息,下面的代码可以帮助你实现.

  1. // Our custom error handler  
  2. function nettuts_error_handler($number$message$file$line$vars){  
  3.     $email = "  
  4.         

    An error ($number) occurred on line  

  5.         $line and in the file: $file.  
  6.         

     $message 

    ";  
  7.    
  8.     $email .= "
    " . print_r($vars, 1) . "
    ";  
  9.    
  10.     $headers = 'Content-type: text/html; charset=iso-8859-1' . "rn";  
  11.    
  12.     // Email the error to someone...  
  13.     error_log($email, 1, 'you@youremail.com'$headers);  
  14.    
  15.     // Make sure that you decide how to respond to errors (on the user's side)  
  16.     // Either echo an error message, or kill the entire project. Up to you...  
  17.     // The code below ensures that we only "die" if the error was more than  
  18.     // just a NOTICE.  
  19.     if ( ($number !== E_NOTICE) && ($number < 2048) ) {  
  20.         die("There was an error. Please try again later.");  
  21.     }  
  22. }  
  23.    
  24. // We should use our custom function to handle errors.  
  25. set_error_handler('nettuts_error_handler');  
  26.    
  27. // Trigger an error... (var doesn't exist)  
  28. echo $somevarthatdoesnotexist;  

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论