• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

分享常常用到的21个PHP函数代码段

php 搞代码 3年前 (2022-01-24) 11次浏览 已收录 0个评论

分享经常用到的21个PHP函数代码段

下面介绍的是,在PHP 开发中,经常用到的21个函数代码段,当我们用到的时候,就可以直接用了。

1. PHP可阅读随机字符串

此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。

/**************
[email protected] – length of random string (must be a multiple of 2)
**************/
function readable_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生成一个随机字符串
如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。
/************* ?
[email protected] – length of random string ?
*/ ?
function? generate_rand( $l ){ ?
?? ?$c = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789”; ?
?? ?srand((double)microtime()*1000000);
??? ?for ( $i =0;? $i < $l ;? $i ++) { ?
?? ??? ?$rand .=? $c [rand()% strlen ( $c )]; ?
?? ?} ?
?? ?return?? $rand ; ?
}
3. PHP编码电子邮件地址
使用此代码,可以将任何电子邮件地址编码为 html 字符实体,以防止被垃圾邮件程序收集。
function? encode_email( $email [email protected]’,? $linkText =’Contact Us’,$attrs? =’class =”emailencoder”‘){ ?
?? ?// remplazar aroba y puntos ?
?? ?$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? = ‘<script type=”text/javascript”>’; ?
?? ?$encoded? .=”document.write(‘$part1’);”; ?
?? ?$encoded? .=”document.write(‘$part2’);”; ?
?? ?foreach ($email as $e) { ?
?? ??? ?$encoded? .= “document.write(‘$e’);”; ?
?? ??? ?} ?
?? ??? ?$encoded? .= “document.write(‘$part3’);”; ?
?? ?foreach ($linkText as $l){ ?
?? ??? ?$encoded? .= “document.write(‘$l’);”; ?
?? ??? ?} ?
?? ??? ?$encoded? .= “document.write(‘$part4’);”; ?
?? ??? ?$encoded? .='</script>’; ?
?? ?return?? $encoded ; ?
}
4. PHP验证邮件地址
电子邮件验证也许是中最常用的网页表单验证,此代码除了验证电子邮件地址,也可以选择检查邮件域所属 DNS 中的 MX 记录,使邮件验证功能更加强大。
function is_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 ); ?
?? ??? ??? ?return getmxrr ( $domain ,? $mxrecords ); ?
?? ??? ?} ?
?? ??? ??? ?else{
?? ??? ??? ?return? true;
?? ??? ?}
?? ?}
?? ?else{ ?
?? ??? ?return? false;
?? ?}
}
5. PHP列出目录内容
function? list_files( $dir ) { ?
?? ?if ( is_dir ( $dir )){ ?
?? ??? ??? ?if ( $handle? = opendir( $dir )){ ?
?? ??? ??? ??? ?while (( $file? = readdir( $handle )) !== false){ ?
?? ??? ??? ??? ??? ?if ( $file? != “.” &&? $file? != “..” &&? $file? != “Thumbs.db”){
?? ??? ??? ??? ??? ?echo ”. $file .’
‘.”\n”; ?
?? ??? ??? ??? ?} ?
?? ??? ??? ??? ?} ?
?? ??? ??? ?closedir ( $handle ); ?
?? ??? ??? ?} ?
?? ??? ?} ?
?}
6. PHP销毁目录
删除一个目录,包括它的内容。
/***** ?
[email protected] – Directory to destroy ?
[email protected][optional]- whether a virtual directory ?
*/ ?
function? destroyDir( $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 ); ?
?? ??? ?return? true; ?
?? ?} ?
?? ?else{ ?
?? ??? ?return? false; ?
?? ?} ?
}
7. PHP解析 JSON 数据
与大多数流行的 Web 服务如 twitter 通过开放 API 来提供数据一样,它总是能够知道如何解析 API 数据的各种传送格式,包括 JSON,XML 等等。
$json_string ='{“id”:1,”name”:”foo”,”email”:”[email protected]”,”interest”:[“wordpress”,”php”]}’; ?
$obj =json_decode( $json_string ); ?
echo?? $obj ->name;? //prints foo ?
echo?? $obj ->interest[1];? //prints php ?
8. PHP解析 XML 数据
//xml string ?
$xml_string =”<?xml version=’1.0′?> ?
?
?
Foo ?
[email protected] ?
?
?
Foobar ?
[email protected] ?
?
“; ?
//load the xml string using simplexml ?
$xml? = simplexml_load_string( $xml_string ); ?
//loop through the each node of user ?
foreach? ( $xml ->user? as?? $user ) ?
{ ?
//access attribute ?
echo?? $user [ ‘id’ ], ‘ ‘; ?
//subnodes are accessed by -> operator ?
echo?? $user ->name, ‘ ‘; ?
echo?? $user ->email, ‘
’; ?
}
9. PHP创建日志缩略名
创建用户友好的日志缩略名。
function? create_slug( $string ){ ?
?? ?$slug =preg_replace(‘/[^A-Za-z0-9-]+/’, ‘-‘,$string ); ?
?? ?return?? $slug ; ?
}
10. PHP获取客户端真实 IP 地址
该函数将获取用户的真实 IP 地址,即便他使用代理服务器。
function getRealIpAddr()? { ?
?? ?if? (!emptyempty($_SERVER[‘HTTP_CLIENT_IP’])) { ?
?? ??? ?$ip=$_SERVER[‘HTTP_CLIENT_IP’]; ?
?? ?}
?? ?//to check ip? is?? pass?? from? proxy
?? ?elseif (!emptyempty($_SERVER[‘HTTP_X_FORWARDED_FOR’])) { ?
?? ??? ?$ip=$_SERVER[ ‘HTTP_X_FORWARDED_FOR’ ];
?? ?}
?? ?else {
?? ??? ?$ip=$_SERVER[ ‘REMOTE_ADDR’ ]; ?
?? ??? ?}
?? ?return? $ip; ?
}
11. PHP强制性文件下载
为用户提供强制性的文件下载功能。
/******************** ?
[email protected] – path to file ?
*/ ?
function force_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 ‘No file selected’; ?
?? ??? ?} ?
}
12. PHP创建标签云
function? getCloud($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 ($data as $tag? =>? $count? ){ ?
?? ??? ?$size=$minFontSize+($count–$minimumCount)*($maxFontSize–$minFontSize)/$spread ; ?
?? ??? ?$cloudTags[]=”. htmlspecialchars(stripslashes

($tag)).”; ?
??????? }
??????? return? join(“\n”,$cloudTags).”\n”; ?
} ?
/************************** ?
**** Sample usage ***/ ?
$arr=Array(‘Actionscrip’=> 35,’Adobe’=> 22’Array’=> 44,’Background’=> 43,’Blur’=> 18,’Canvas’=> 33,’Class’=> 15,’Color Palette’=> 11,’Crop’=> 42,’Delimiter’=> 13,’Depth’=>

34,’Design’=> 8,’Encode’ => 12,’Encryption’=> 30,’Extract’=> 28,’Filters’=>42); ?
echo getCloud( $arr , 12, 36);
13. PHP寻找两个字符串的相似性
PHP 提供了一个极少使用的 similar_text 函数,但此函数非常有用,用于比较两个字符串并返回相似程度的百分比。
similar_text( $string1 ,? $string2 ,? $percent ); ?
//$percent will have the percentage of similarity ?
14. PHP在应用程序中使用 Gravatar 通用头像
随着 WordPress 越来越普及,Gravatar 也随之流行。由于 Gravatar 提供了易于使用的 API,将其纳入应用程序也变得十分方便。
/****************** ?
[email protected] – Email address to show gravatar for ?
[email protected] – size of gravatar ?
[email protected] – URL of default gravatar to use ?
[email protected] – rating of Gravatar(G, PG, R, X) ?
*/ ?
function show_gravatar( $email ,? $size ,? $d

)本文来源gaodai.ma#com搞#代!码网_

搞代gaodaima码efault ,? $rating ){ ?
?? ?echo? ‘
height=”‘.$size.’px”%20/>’;%20?
}%20
15.%20PHP在字符断点处截断文字
所谓断字%20(word%20break),即一个单词可在转行时断开的地方。这一函数将在断字处截断字符串。
//%20Original%20PHP%20code%20by%20Chirp%20Internet:%20www.chirp.com.au%20?
//%20Please%20acknowledge%20use%20of%20this%20code%20by%20including%20this%20header.%20?
function?%20myTruncate(%20$string%20,?%20$limit%20,?%20$break%20=’.’,?%20$pad%20=’…’)%20{%20?
??%20?//%20return%20with%20no%20change%20if%20string%20is%20shorter%20than%20$limit%20?
???????%20if%20(%20strlen%20(%20$string%20)%20<=?%20$limit%20)%20?
???????%20return??%20$string%20;%20?
???????%20//%20is%20$break%20present%20between%20$limit%20and%20the%20end%20of%20the%20string?%20?
???????%20if%20(false%20!==%20($breakpoint=strpos($string,$break,$limit%20))){%20?
??%20???%20?if%20(%20$breakpoint?%20<?%20strlen%20(%20$string%20)%20–%201)%20{%20?
??%20???%20???%20?$string?%20=?%20substr%20(%20$string%20,%200,?%20$breakpoint%20)%20.?%20$pad%20;%20?
??????%20???%20?}%20?
???????%20}%20?
???????%20return??%20$string%20;%20?
}%20?
/*****%20Example%20****/%20?
$short_string%20=myTruncate(%20$long_string%20,%20100,%20’%20′);%20
16.%20PHP文件%20Zip%20压缩
/*%20creates%20a%20compressed%20zip%20file%20*/%20?
function?%20create_zip(%20$files?%20=?%20array%20(),%20$destination?%20=%20”,%20$overwrite?%20=%20false)%20{%20?
??%20?//if%20the%20zip%20file%20already%20exists%20and%20overwrite%20is%20false,%20return%20false%20?
??%20?if%20(%20file_exists%20(%20$destination%20)%20&&%20!%20$overwrite%20)%20{?%20return?%20false;%20}%20?
???????%20//vars%20?
???????%20$valid_files?%20=?%20array%20();%20?
???????%20//if%20files%20were%20passed%20in…%20?
???????%20if%20(%20is_array%20(%20$files%20))%20{%20?
??????%20???%20?//cycle%20through%20each%20file%20?
??????%20???%20?foreach%20(%20$files??%20as??%20$file%20)%20{%20?
??????%20???%20???%20?//make%20sure%20the%20file%20exists%20?
??????%20???%20???%20?if%20(%20file_exists%20(%20$file%20))%20{%20?
??????%20???%20???%20???%20?$valid_files%20[]%20=?%20$file%20;%20?
??????%20???%20???%20?}%20?
??????%20???%20?}%20?
???????%20}%20?
???????%20//if%20we%20have%20good%20files…%20?
???????%20if%20(%20count%20(%20$valid_files%20))%20{%20?
??????%20???%20?//create%20the%20archive%20?
??????%20???%20?$zip?%20=?%20new?%20ZipArchive();%20?
??????%20???%20?if%20(%20$zip%20->open(%20$destination%20,%20$overwrite?%20?%20ZIPARCHIVE::OVERWRITE%20:%20ZIPARCHIVE::CREATE)%20!==%20true)%20{%20?
??????%20???%20???%20?return?%20false;%20?
??????%20???%20?}%20?
??????%20???%20?//add%20the%20files%20?
??????%20???%20?foreach%20(%20$valid_files??%20as??%20$file%20)%20{%20?
??????%20???%20???%20?$zip%20->addFile(%20$file%20,%20$file%20);%20?
??????%20???%20?}%20?
??????%20???%20?//debug%20?
??????%20???%20?//echo%20‘The%20zip%20archive%20contains%20‘,$zip->numFiles,’%20files%20with%20a%20status%20of%20‘,$zip->status;%20?
??????%20???%20?//close%20the%20zip%20—%20done!%20?
??????%20???%20?$zip%20->close();%20?
??????%20???%20?//check%20to%20make%20sure%20the%20file%20exists%20?
??????%20???%20?return??%20file_exists%20(%20$destination%20);%20?
???????%20}else{%20?
??????%20???%20?return?%20false;%20?
???????%20}%20?
}%20?
/*****%20Example%20Usage%20***/%20?
$files%20=%20array%20(‘file1.jpg’,’file2.jpg’,’file3.gif’); ?
create_zip( $files ,’myzipfile.zip’, true);
17. PHP解压缩 Zip 文件
/********************** ?
[email protected] – path to zip file ?
[email protected] – destination directory for unzipped files ?
*/ ?
function? unzip_file( $file ,? $destination ){ ?
?? ?// create object ?
?? ?$zip? =? new? ZipArchive() ; ?
?? ?// open archive ?
?? ?if? ( $zip ->open( $file ) !== TRUE) { ?
?? ??? ?die? (‘Could not open archive’); ?
?? ?} ?
?? ?// extract contents to destination directory ?
?? ?$zip ->extractTo( $destination ); ?
?? ?// close archive ?
?? ?$zip ->close(); ?
?? ?echo ‘Archive extracted to directory’; ?
}
18. PHP为 URL 地址预设 http 字符串
有时需要接受一些表单中的网址输入,但用户很少添加 http:// 字段,此代码将为网址添加该字段。
if(!preg_match(“/^(http|ftp):/”,$_POST[‘url’])) { ?
?? ?$_POST[‘url’] =’http: //’.$_POST[‘url’]; ?
}
19. PHP将网址字符串转换成超级链接
该函数将 URL 和 E-mail 地址字符串转换为可点击的超级链接。
function? makeClickableLinks( $text ) {
?? ?$text=eregi_replace(‘(((f|ht){1}tp: //)[-a-zA-Z0-9@:%_+.~#?&//=]+)’,’\1′,$text); ?
??????? $text=eregi_replace(‘([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?& //=]+)’,’\1\2′, $text); ?
?? ?$text=eregi_replace(‘([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})’,’\1′,$text); ?
?? ?return $text ; ?
}
20. PHP调整图像尺寸
创建图像缩略图需要许多时间,此代码将有助于了解缩略图的逻辑。
/********************** ?
[email protected] – path to the image ?
[email protected] – temporary path to thumbnail ?
[email protected] – max width ?
[email protected] – max height ?
*/ ?
function? resize_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’){ ?
?? ?//If AJAX Request Then ?
} else {
?? ?//something else ?
} ?
到这,21个经常用到的PHP函数代码段,就大家介绍完了。希望对你有帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:分享常常用到的21个PHP函数代码段

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址