|  | 
 
| 1. PHP可阅读随机字符串 此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。
 
 
 
 /*************** 
@length-lengthofrandomstring(mustbeamultipleof2)**************/ 
functionreadable_random_string($length=6){
 
$conso=array("b","c","d","f","g","h","j","k","l",
 
"m","n","p","r","s","t","v","w","x","y","z"); 
$vocal=array("a","e","i","o","u");
 
$password="";
 
srand((double)microtime()*1000000); 
$max=$length/2;
 
for($i=1;
 
$i<=$max;$i++)
 
{ 
$password.=$conso[rand(0,19)];
 
$password.=$vocal[rand(0,4)];
 
} 
return$password; 
} 
 
 2. PHP生成一个随机字符串
 如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。
 
 
 
 /************* 
*@l-lengthofrandomstring 
*/ 
functiongenerate_rand($l){ 
$c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
 
srand((double)microtime()*1000000); 
for($i=0;$i<$l;$i++){
 
$rand.=$c[rand()%strlen($c)];
 
} 
return$rand; 
} 
 
 3. PHP编码电子邮件地址
 使用此代码,可以将任何电子邮件地址编码为 html 字符实体,以防止被垃圾邮件程序收集。
 
 
 
 functionencode_email($email='info@domain.com',$linkText='ContactUs',$attrs='class="emailencoder"') 
{ 
//remplazararobaypuntos 
$email=str_replace('@','@',$email);
 
$email=str_replace('.','.',$email);
 
$email=str_split($email,5);
 
$linkText=str_replace('@','@',$linkText);
 
$linkText=str_replace('.','.',$linkText);
 
$linkText=str_split($linkText,5);$part1='part2='ilto:';$part3='"'.$attrs.'>';
 
$part4='';
 
$encoded='';
 
$encoded.="document.write('$part1');";
 
$encoded.="document.write('$part2');";
 
foreach($emailas$e) 
{ 
$encoded.="document.write('$e');";
 
} 
$encoded.="document.write('$part3');";
 
foreach($linkTextas$l) 
{ 
$encoded.="document.write('$l');";
 
} 
$encoded.="document.write('$part4');";
 
$encoded.='';return$encoded;}
 
 
 4. PHP验证邮件地址
 电子邮件验证也许是中最常用的网页表单验证,此代码除了验证电子邮件地址,也可以选择检查邮件域所属 DNS 中的 MX 记录,使邮件验证功能更加强大。
 
 
 
 functionis_valid_email($email,$test_mx=false) 
{ 
if(eregi("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$",$email))if($test_mx) 
{ 
list($username,$domain)=split("@",$email); 
returngetmxrr($domain,$mxrecords); 
} 
else 
returntrue; 
else 
returnfalse; 
}   5. PHP列出目录内容
 
 
 functionlist_files($dir){ 
if(is_dir($dir)) 
{ 
if($handle=opendir($dir)){
 
while(($file=readdir($handle))!==false)
 
{ 
if($file!="."&&$file!=".."&&$file!="Thumbs.db") 
{echo'<atarget="_blank"href="'.$dir.$file.'">'.$file.'a><br>'."\n";
 
} 
} 
closedir($handle); 
} 
} 
} 
 
 6. PHP销毁目录
 删除一个目录,包括它的内容。
 
 
 
 /***** 
*@dir-Directorytodestroy 
*@virtual[optional]-whetheravirtualdirectory 
*/ 
functiondestroyDir($dir,$virtual=false)
 
{ 
$ds=DIRECTORY_SEPARATOR;
 
$dir=$virtual?realpath($dir):$dir;
 
$dir=substr($dir,-1)==$ds?substr($dir,0,-1):$dir;
 
if(is_dir($dir)&&$handle=opendir($dir))
 
{ 
while($file=readdir($handle))
 
{ 
if($file=='.'||$file=='..')
 
{ 
continue; 
} 
elseif(is_dir($dir.$ds.$file)) 
{ 
destroyDir($dir.$ds.$file); 
} 
else 
{ 
unlink($dir.$ds.$file); 
} 
} 
closedir($handle); 
rmdir($dir); 
returntrue; 
} 
else 
{ 
returnfalse; 
} 
} 
 
 7. PHP解析 JSON 数据
 与大多数流行的 Web 服务如 twitter 通过开放 API 来提供数据一样,它总是能够知道如何解析 API 数据的各种传送格式,包括 JSON,XML 等等。
 
 
 
 $json_string='{"id":1,"name":"foo","email":"foo@foobar.com","interest":["wordpress","php"]}'; 
$obj=json_decode($json_string);
 
echo$obj->name;//printsfoo
 
echo$obj->interest[1];//printsphp
 
 
 
 8. PHP解析 XML 数据
 
 
 
 //xmlstring 
$xml_string="xmlversion='1.0'?>
 
<users>
 
<userid='398'>
 
<name>Fooname>
 
<email>foo@bar.comname>
 
user>
 
<userid='867'>
 
<name>Foobarname>
 
<email>foobar@foo.comname>
 
user>users>"; 
//loadthexmlstringusingsimplexml 
$xml=simplexml_load_string($xml_string);
 
//loopthroughtheeachnodeofuser 
foreach($xml->useras$user)
 
{ 
//accessattribute 
echo$user['id'],''; 
//subnodesareaccessedby->operator
 
echo$user->name,'';
 
echo$user->email,'<br/>';
 
} 
 
 9. PHP创建日志缩略名  创建用户友好的日志缩略名。
 
 
 
 functioncreate_slug($string){ 
$slug=preg_replace('/[^A-Za-z0-9-]+/','-',$string);
 
return$slug; 
} 
 10. PHP获取客户端真实 IP 地址
 该函数将获取用户的真实 IP 地址,即便他使用代理服务器。
 
 
 
 functiongetRealIpAddr() 
{ 
if(!emptyempty($_SERVER['HTTP_CLIENT_IP'])) 
{ 
$ip=$_SERVER['HTTP_CLIENT_IP'];
 
} 
elseif(!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) 
//tocheckipispassfromproxy 
{ 
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
 
} 
else 
{ 
$ip=$_SERVER['REMOTE_ADDR'];
 
} 
return$ip; 
} 
 
 11. PHP强制性文件下载
 为用户提供强制性的文件下载功能。
 
 
 
 /******************** 
*@file-pathtofile 
*/ 
functionforce_download($file) 
{ 
if((isset($file))&&(file_exists($file))){ 
header("Content-length:".filesize($file)); 
header('Content-Type:application/octet-stream'); 
header('Content-Disposition:attachment;filename="'.$file.'"');
 
readfile("$file"); 
} 
else{ 
echo"Nofileselected"; 
} 
} 
 
 12. PHP创建标签云
 
 
 
 functiongetCloud($data=array(),$minFontSize=12,$maxFontSize=30) 
{ 
$minminimumCount=min(array_values($data));
 
$maxmaximumCount=max(array_values($data));
 
$spread=$maximumCount-$minimumCount;$cloudHTML='';
 
$cloudTags=array();
 
$spread==0&&$spread=1;
 
foreach($dataas$tag=>$count)
 
{ 
$size=$minFontSize+($count-$minimumCount)*($maxFontSize-$minFontSize)/$spread;
 
$cloudTags[]='<astyle="font-size:'.floor($size).'px'
 
.'"href="#"title="\''.$tag.
 
'\'returnedacountof'.$count.'">'
 
.htmlspecialchars(stripslashes($tag)).'a>';
 
} 
returnjoin("\n",$cloudTags)."\n"; 
} 
/*************************** 
***Sampleusage***/ 
$arr=Array('Actionscript'=>35,'Adobe'=>22,'Array'=>44,'Background'=>43,
 
'Blur'=>18,'Canvas'=>33,'Class'=>15,'ColorPalette'=>11,'Crop'=>42,
 
'Delimiter'=>13,'Depth'=>34,'Design'=>8,'Encode'=>12,'Encryption'=>30,
 
'Extract'=>28,'Filters'=>42);
 
echogetCloud($arr,12,36); 
 
 
 13. PHP寻找两个字符串的相似性
 PHP 提供了一个极少使用的 similar_text 函数,但此函数非常有用,用于比较两个字符串并返回相似程度的百分比。
 
 
 
 similar_text($string1,$string2,$percent); 
//$percentwillhavethepercentageofsimilarity 
 14. PHP在应用程序中使用 Gravatar 通用头像
 随着 WordPress 越来越普及,Gravatar 也随之流行。由于 Gravatar 提供了易于使用的 API,将其纳入应用程序也变得十分方便。
 
 
 
 /****************** 
*@email-Emailaddresstoshowgravatarfor 
*@size-sizeofgravatar 
*@default-URLofdefaultgravatartouse 
*@rating-ratingofGravatar(G,PG,R,X) 
*/ 
functionshow_gravatar($email,$size,$default,$rating) 
{ 
echo'<imgsrc="http://www.gravatar.com/avatar.php?gravatar_id='.md5($email).
 
'&default='.$default.'&size='.$size.'&rating='.$rating.'"width="'.$size.'px"
 
height="'.$size.'px"/>';
 
} 
 
 
 15. PHP在字符断点处截断文字
 所谓断字 (word break),即一个单词可在转行时断开的地方。这一函数将在断字处截断字符串。
 
 
 
 //OriginalPHPcodebyChirpInternet:www.chirp.com.au 
//Pleaseacknowledgeuseofthiscodebyincludingthisheader. 
functionmyTruncate($string,$limit,$break=".",$pad="..."){
 
//returnwithnochangeifstringisshorterthan$limit 
if(strlen($string)<=$limit)
 
return$string; 
//is$breakpresentbetween$limitandtheendofthestring? 
if(false!==($breakpoint=strpos($string,$break,$limit))){
 
if($breakpoint<strlen($string)-1){
 
$string=substr($string,0,$breakpoint).$pad;
 
} 
} 
return$string; 
} 
/*****Example****/ 
$short_string=myTruncate($long_string,100,'');
 
 
 16. PHP文件 Zip 压缩
 
 
 
 /*createsacompressedzipfile*/ 
functioncreate_zip($files=array(),$destination='',$overwrite=false){
 
//ifthezipfilealreadyexistsandoverwriteisfalse,returnfalse 
if(file_exists($destination)&&!$overwrite){returnfalse;} 
//vars$valid_files=array();
 
//iffileswerepassedin... 
if(is_array($files)){ 
//cyclethrougheachfile 
foreach($filesas$file){ 
//makesurethefileexists 
if(file_exists($file)){ 
$valid_files[]=$file; 
} 
} 
} 
//ifwehavegoodfiles... 
if(count($valid_files)){ 
//createthearchive 
$zip=newZipArchive();
 
if($zip->open($destination,$overwrite?ZIPARCHIVE::OVERWRITE:ZIPARCHIVE::CREATE)!==true){returnfalse;
 
} 
//addthefiles 
foreach($valid_filesas$file){ 
$zip->addFile($file,$file);
 
} 
//debug//echo'Theziparchivecontains',$zip->numFiles,'fileswithastatusof',$zip->status;
 
//closethezip--done! 
$zip->close();
 
//checktomakesurethefileexists 
returnfile_exists($destination); 
} 
else 
{ 
returnfalse; 
} 
} 
/*****ExampleUsage***/ 
$files=array('file1.jpg','file2.jpg','file3.gif');
 
create_zip($files,'myzipfile.zip',true); 
 
 17. PHP解压缩 Zip 文件
 
 
 
 /********************** 
*@file-pathtozipfile 
*@destination-destinationdirectoryforunzippedfiles 
*/ 
functionunzip_file($file,$destination){ 
//createobject 
$zip=newZipArchive();
 
//openarchive 
if($zip->open($file)!==TRUE){
 
die(’Couldnotopenarchive’); 
} 
//extractcontentstodestinationdirectory 
$zip->extractTo($destination);
 
//closearchive 
$zip->close();
 
echo'Archiveextractedtodirectory'; 
} 
 18. PHP为 URL 地址预设 http 字符串
 有时需要接受一些表单中的网址输入,但用户很少添加 http:// 字段,此代码将为网址添加该字段。
 
 
 
 if(!preg_match("/^(http|ftp):/",$_POST['url'])){ 
$_POST['url']='http://'.$_POST['url']; 
} 
 19. PHP将网址字符串转换成超级链接
 该函数将 URL 和 E-mail 地址字符串转换为可点击的超级链接。
 
 
 
 functionmakeClickableLinks($text){ 
$text=eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)',
 
'<ahref="\1">\1a>',$text);
 
$text=eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)',
 
'\1<ahref="http://\2">\2a>',$text);
 
$text=eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})',
 
'<ahref="mailto:\1">\1a>',$text);
 
return$text; 
}
 20. PHP调整图像尺寸
 创建图像缩略图需要许多时间,此代码将有助于了解缩略图的逻辑。
 
 
 
 /********************** 
*@filename-pathtotheimage 
*@tmpname-temporarypathtothumbnail 
*@xmax-maxwidth 
*@ymax-maxheight 
*/ 
functionresize_image($filename,$tmpname,$xmax,$ymax) 
{ 
$ext=explode(".",$filename);
 
$ext=$ext[count($ext)-1];
 
if($ext=="jpg"||$ext=="jpeg")
 
$im=imagecreatefromjpeg($tmpname);
 
elseif($ext=="png")
 
$im=imagecreatefrompng($tmpname);
 
elseif($ext=="gif")
 
$im=imagecreatefromgif($tmpname);
 
$x=imagesx($im);
 
$y=imagesy($im);
 
if($x<=$xmax&&$y<=$ymax)
 
return$im; 
if($x>=$y){
 
$newx=$xmax;
 
$newy=$newx*$y/$x;
 
} 
else{ 
$newy=$ymax;
 
$newx=$x/$y*$newy;
 
} 
$im2=imagecreatetruecolor($newx,$newy);
 
imagecopyresized($im2,$im,0,0,0,0,floor($newx),floor($newy),$x,$y); 
return$im2; 
}
 21. PHP检测 ajax 请求
 大多数的 JavaScript 框架如 jquery,Mootools 等,在发出 Ajax 请求时,都会发送额外的 HTTP_X_REQUESTED_WITH 头部信息,头当他们一个ajax请求,因此你可以在服务器端侦测到 Ajax 请求。
 
 
 
 if(!emptyempty($_SERVER['HTTP_X_REQUESTED_WITH'])&&strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])=='xmlhttprequest'){ 
//IfAJAXRequestThen 
}else{ 
//somethingelse 
} 
 
 
 
 
 | 
 |