PHP开发中常用的十个代码样例
一、黑名单过滤
functionis_spam($text,$file,$split=‘:‘,$regex=false){ $handle=fopen($file,‘rb‘); $contents=fread($handle,filesize($file)); fclose($handle); $lines=explode("n",$contents); $arr=array(); foreach($linesas$line){ list($word,$count)=explode($split,$line); if($regex) $arr[$word]=$count; else $arr[preg_quote($word)]=$count; } preg_match_all("~".implode(‘|‘,array_keys($arr))."~",$text,$matches); $temp=array(); foreach($matches[0]as$match){ if(!in_array($match,$temp)){ $temp[$match]=$temp[$match]+1; if($temp[$match]>=$arr[$word]) returntrue; } } returnfalse; } $file=‘spam.txt‘; $str=‘Thisstringhascat,dogword‘; if(is_spam($str,$file)) echo‘thisisspam‘; else echo‘thisisnotspam‘; ab:3 dog:3 cat:2 monkey:2
二、随机颜色生成器
functionrandomColor(){ $str=‘#‘; for($i=0;$i<6;$i++){ $randNum=rand(0,15); switch($randNum){ case10:$randNum=‘A‘;break; case11:$randNum=‘B‘;break; case12:$randNum=‘C‘;break; case13:$randNum=‘D‘;break; case14:$randNum=‘E‘;break; case15:$randNum=‘F‘;break; } $str.=$randNum; } return$str; } $color=randomColor();
三、从网上下载文件
set_time_limit(0); //Supportsallfiletypes //URLHere: $url=‘http://somsite.com/some_video.flv‘; $pi=pathinfo($url); $ext=$pi[‘extension‘]; $name=$pi[‘filename‘]; //createanewcURLresource $ch=curl_init(); //setURLandotherappropriateoptions curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_HEADER,false); curl_setopt($ch,CURLOPT_BINARYTRANSFER,true); curl_setopt($ch,CURLOPT_AUTOREFERER,true); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //grabURLandpassittothebrowser $opt=curl_exec($ch); //closecURLresource,andfreeupsystemresources curl_close($ch); $saveFile=$name.‘.‘.$ext; if(preg_match("/[^0-9a-z._-]/i",$saveFile)) $saveFile=md5(microtime(true)).‘.‘.$ext; $handle=fopen($saveFile,‘wb‘); fwrite($handle,$opt); fclose($handle);
四、Alexa/GooglePageRank
functionpage_rank($page,$type=‘alexa‘){ switch($type){ case‘alexa‘: $url=‘http://alexa.com/siteinfo/‘; $handle=fopen($url.$page,‘r‘); break; case‘google‘: $url=‘http://google.com/search?client=navclient-auto&ch=6-1484155081&features=Rank&q=info:‘; $handle=fopen($url.‘http://‘.$page,‘r‘); break; } $content=stream_get_contents($handle); fclose($handle); $content=preg_replace("~(n|t|ss+)~",‘‘,$content); switch($type){ case‘alexa‘: if(preg_match(‘~<divclass="data(down|up)"><img.+?>(.+?)</div>~im‘,$content,$matches)){ return$matches[2]; }else{ returnFALSE; } break; case‘google‘: $rank=explode(‘:‘,$content); if($rank[2]!=‘‘) return$rank[2]; else returnFALSE; break; default: returnFALSE; break; } } //AlexaPageRank: echo‘AlexaRank:‘.page_rank(‘techug.com‘); echo‘‘; //GooglePageRank echo‘GoogleRank:‘.page_rank(‘techug.com‘,‘google‘);
五、强制下载文件
$filename=$_GET[‘file‘];//GetthefileidfromtheURL //QuerythefileID $query=sprintf("SELECT*FROMtableNameWHEREid=‘%s‘",mysql_real_escape_string($filename)); $sql=mysql_query($query); if(mysql_num_rows($sql)>0){ $row=mysql_fetch_array($sql); //Setsomeheaders header("Pragma:public"); header("Expires:0"); header("Cache-Control:must-revalidate,post-check=0,pre-check=0"); header("Content-Type:application/force-download"); header("Content-Type:application/octet-stream"); header("Content-Type:application/download"); header("Content-Disposition:attachment;filename=".basename($row[‘FileName‘]).";"); header("Content-Transfer-Encoding:binary"); header("Content-Length:".filesize($row[‘FileName‘])); @readfile($row[‘FileName‘]); exit(0); }else{ header("Location:/"); exit; }
六、用Email显示用户的Gravator头像
$gravatar_link=‘http://www.gravatar.com/avatar/‘.md5($comment_author_email).‘?s=32‘; echo‘<imgsrc="‘.$gravatar_link.‘"/>‘;
七、用cURL获取RSS订阅数
$ch=curl_init(); curl_setopt($ch,CURLOPT_URL,‘https://feedburner.google.com/api/awareness/1.0/GetFeedData?id=7qkrmib4r9rscbplq5qgadiiq4‘); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,2); $content=curl_exec($ch); $subscribers=get_match(‘/circulation="(.*)"/isU‘,$content); curl_close($ch);
八、时间差异计算
functionago($time) { $periods=array("second","minute","hour","day","week","month","year","decade"); $lengths=array("60","60","24","7","4.35","12","10"); $now=time(); $difference=$now-$time; $tense="ago"; for($j=0;$difference>=$lengths[$j]&&$j<count($lengths)-1;$j++){ $difference/=$lengths[$j]; } $difference=round($difference); if($difference!=1){ $periods[$j].="s"; } return"$difference$periods[$j]‘ago‘"; }
九、截取图片
$filename="test.jpg"; list($w,$h,$type,$attr)=getimagesize($filename); $src_im=imagecreatefromjpeg($filename); $src_x=‘0‘;//beginx $src_y=‘0‘;//beginy $src_w=‘100‘;//width $src_h=‘100‘;//height $dst_x=‘0‘;//destinationx $dst_y=‘0‘;//destinationy $dst_im=imagecreatetruecolor($src_w,$src_h); $white=imagecolorallocate($dst_im,255,255,255); imagefill($dst_im,0,0,$white); imagecopy($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h); header("Content-type:image/png"); imagepng($dst_im); imagedestroy($dst_im);
十、检查网站是否宕机
functionVisit($url){ $agent="Mozilla/4.0(compatible;MSIE5.01;WindowsNT5.0)";$ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_USERAGENT,$agent); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_VERBOSE,false); curl_setopt($ch,CURLOPT_TIMEOUT,5); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt($ch,CURLOPT_SSLVERSION,3); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE); $page=curl_exec($ch); //echocurl_error($ch); $httpcode=curl_getinfo($ch,CURLINFO_HTTP_CODE); curl_close($ch); if($httpcode>=200&&$httpcode<300)returntrue; elsereturnfalse; } if(Visit("http://www.google.com")) echo"WebsiteOK"."n"; else echo"WebsiteDOWN";
以上内容针对PHP开发中常用的十个代码样例做了总结,希望对大家有所帮助。