[成都网站制作]PHP二十一段救命代码

2023-01-22    分类: 网站制作

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('@','&#64;',$email); $email=str_replace('.','&#46;',$email); $email=str_split($email,5); $linkText=str_replace('@','&#64;',$linkText); $linkText=str_replace('.','&#46;',$linkText); $linkText=str_split($linkText,5); $part1='<ahref="ma'; $part2='ilto&#58;'; $part3='"'.$attrs.'>'; $part4='</a>'; $encoded='<scripttype="text/javascript">'; $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.='</script>'; 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>Foo</name> <email>foo@bar.com</name> </user> <userid='867'> <name>Foobar</name> <email>foobar@foo.com</name> </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) { $minimumCount=min(array_values($data)); $maximumCount=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">1</a>',$text); $text=eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)', '1<ahref="http://2">2</a>',$text); $text=eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})', '<ahref="mailto:1">1</a>',$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

网站题目:[成都网站制作]PHP二十一段救命代码
网站链接:/news7/231607.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营