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开发中常用的十个代码样例做了总结,希望对大家有所帮助。