php开发中实用的PHP代码片段
1.关键词高亮, 代码如下:
function highlight( $sString , $aWords ) { if (! is_array ( $aWords ) || empty empty ( $aWords ) || ! is_string ( $sString )) { return false; } $sWords = implode ( '|' , $aWords ); return preg_replace ( '@b(' . $sWords . ')b@si' , '$1' , $sString ); }2.获取你的Feedburner的用户, 代码如下:
function get_average_readers( $feed_id , $interval = 7){ $today = date ( 'Y-m-d' , strtotime ( "now" )); $ago = date ( 'Y-m-d' , strtotime ( "-" . $interval . " days" )); $feed_url = "https://feedburner.google测试数据/api/awareness/1.0/GetFeedData?uri=" . $feed_id . "&dates=" . $ago . "," . $today ; $ch = curl_init(); curl_setopt( $ch , CURLOPT_RETURNTRANSFER, 1); curl_setopt( $ch , CURLOPT_URL, $feed_url ); $data = curl_exec( $ch ); curl_close( $ch ); $xml = new SimpleXMLElement( $data ); $fb = $xml ->feed->entry[ 'circulation' ]; $nb = 0; foreach ( $xml ->feed->children() as $circ ){ $nb += $circ [ 'circulation' ]; } return round ( $nb / $interval ); }3.自动生成密码, 代码如下:
function generatePassword( $length =9, $strength =0) { $vowels = 'aeuy' ; $consonants = 'bdghjmnpqrstvz' ; if ( $strength >= 1) { $consonants .= 'BDGHJLMNPQRSTVWXZ' ; } if ( $strength >= 2) { $vowels .= "AEUY" ; } if ( $strength >= 4) { $consonants .= '23456789' ; } if ( $strength >= 8 ) { $vowels .= '@#$%' ; } $password = '' ; $alt = time() % 2; for ( $i = 0; $i < $length ; $i ++) { if ( $alt == 1) { $password .= $consonants [(rand() % strlen ( $consonants ))]; $alt = 0; } else { $password .= $vowels [(rand() % strlen ( $vowels ))]; $alt = 1; } } return $password ; }4.压缩多个CSS文件, 代码如下:
header( 'Content-type: text/css' ); ob_start( "compress" ); function compress( $buffer ) { /* remove comments */ $buffer = preg_replace( '!/*[^*]**+([^/][^*]**+)*/!' , '' , $buffer ); /* remove tabs, spaces, newlines, etc. */ $buffer = str_replace ( array ( "rn" , "r" , "n" , "t" , ' ' , ' ' , ' ' ), '' , $buffer ); return $buffer ; } /* your css files */ include ( 'master.css' ); include ( 'typography.css' ); include ( 'grid.css' ); include ( 'print.css' ); include ( 'handheld.css' ); ob_end_flush();5.获取短网址, 代码如下:
function getTinyUrl( $url ) { return file_get_contents ( "http://tinyurl测试数据/api-create.php?url=" . $url ); }6.根据生日计算年龄, 代码如下:
function age( $date ){ $year_diff = '' ; $time = strtotime ( $date ); if (FALSE === $time ){ return '' ; } $date = date ( 'Y-m-d' , $time ); list( $year , $month , $day ) = explode ( "-" , $date ); $year_diff = date ( "Y" ) – $year ; $month_diff = date ( "m" ) – $month ; $day_diff = date ( "d" ) – $day ; if ( $day_diff < 0 || $month_diff < 0) $year_diff –; return $year_diff ; }7.计算执行时间, 代码如下:
//Create a variable for start time $time_start = microtime(true); // Place your PHP/HTML/JavaScript/CSS/Etc. Here //Create a variable for end time $time_end = microtime(true); //Subtract the two times to get seconds $time = $time_end - $time_start ; echo 'Script took ' . $time . ' seconds to execute' ;8.PHP的维护模式 function maintenance( $mode = FALSE){ if ( $mode ){ if ( basename ( $_SERVER [ 'SCRIPT_FILENAME' ]) != 'maintenance.php' ){ header( "Location: http://example测试数据/maintenance.php" ); exit ; } } else { if ( basename ( $_SERVER [ 'SCRIPT_FILENAME' ]) == 'maintenance.php' ){ header( "Location: http://example测试数据/" ); exit ; } } }通过IP判断来源,这是一个非常实用的代码片段,可以帮助你通过IP来判断访客来源,下面的方法通过接收一个参数,然后返回IP所在地点,如果没有找到,则返回UNKNOWN,代码如下:
function detect_city( $ip ) { $default = 'UNKNOWN' ; if (! is_string ( $ip ) || strlen ( $ip ) < 1 || $ip == '127.0.0.1' || $ip == 'localhost' ) $ip = '8.8.8.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)' ; $url = 'http://ipinfodb测试数据/ip_locator.php?ip=' . urlencode( $ip ); $ch = curl_init(); $curl_opt = array ( CURLOPT_FOLLOWLOCATION => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $curlopt_useragent , CURLOPT_URL => $url , CURLOPT_TIMEOUT => 1, CURLOPT_REFERER => 'http://' . $_SERVER [ 'HTTP_HOST' ], ); curl_setopt_array( $ch , $curl_opt ); $content = curl_exec( $ch ); if (! is_null ( $curl_info )) { $curl_info = curl_getinfo( $ch ); } curl_close( $ch ); if ( preg_match( '{ City : ([^<]*) }i' , $content , $regs ) ) { $city = $regs [1]; } if ( preg_match( '{ State/Province : ([^<]*) }i' , $content , $regs ) ) { $state = $regs [1]; } if ( $city != '' && $state != '' ){ $location = $city . ', ' . $state ; return $location ; } else { return $default ; } }判断一张图片的主色调,下面这个代码非常实用,能帮助你判断一张图片中的主色调,你可以分析任何图片,代码如下:
$i = imagecreatefromjpeg( "image.jpg" ); for ( $x =0; $x $i ); $x ++) { for ( $y =0; $y $i ); $y ++) { $rgb = imagecolorat( $i , $x , $y ); $r = ( $rgb >> 16) & 0xFF; $g = ( $rgb >> & 0xFF; $b = $rgb & 0xFF; $rTotal += $r ; $gTotal += $g ; $bTotal += $b ; $total ++; } } $rAverage = round ( $rTotal / $total ); $gAverage = round ( $gTotal / $total ); $bAverage = round ( $bTotal / $total );不显示PHP错误而发送电子邮件取代之,如果你不想在页面中显示PHP错误,也可以通过email来获取错误信息,下面的代码可以帮助你实现.
// Our custom error handler function nettuts_error_handler( $number , $message , $file , $line , $vars ){ $email = "An error ( $number ) occurred on line
$line and in the file: $file .$message
"; $email .= "" . print_r( $vars , 1) . "" ; $headers = 'Content-type: text/html; charset=iso-8859-1' . "rn" ; // Email the error to someone... error_log ( $email , 1, 'you@youremail测试数据' , $headers ); // Make sure that you decide how to respond to errors (on the user's side) // Either echo an error message, or kill the entire project. Up to you... // The code below ensures that we only "die" if the error was more than // just a NOTICE. if ( ( $number !== E_NOTICE) && ( $number < 2048) ) { die ( "There was an error. Please try again later." ); } } // We should use our custom function to handle errors. set_error_handler( 'nettuts_error_handler' ); // Trigger an error... (var doesn't exist) echo $somevarthatdoesnotexist ;查看更多关于php开发中实用的PHP代码片段 - php高级应用的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did30186