您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2025/6/3 9:51:37发布13次查看
分享经常用到的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 ? ?$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 ? ?$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? = ''; ?
?$part4? = ''; ?
?$encoded? = ''; ?
?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 = ?
?
?
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 ,? $default ,? $rating ){ ?
?echo? '
height='.$size.'px />'; ?
}
15. php在字符断点处截断文字
所谓断字 (word break),即一个单词可在转行时断开的地方。这一函数将在断字处截断字符串。
// original php code by chirp internet: www.chirp.com.au ?
// please acknowledge use of this code by including this header. ?
function? mytruncate( $string ,? $limit ,? $break ='.',? $pad ='…') { ?
?// return with no change if string is shorter than $limit ?
? if ( strlen ( $string ) ? return $string ; ?
? // is $break present between $limit and the end of the string? ?
? 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 压缩
/* creates a compressed zip file */ ?
function? create_zip( $files? =? array (), $destination? = '', $overwrite? = false) { ?
?//if the zip file already exists and overwrite is false, return false ?
?if ( file_exists ( $destination ) && ! $overwrite ) {? return? false; } ?
? //vars ?
? $valid_files? =? array (); ?
? //if files were passed in… ?
? if ( is_array ( $files )) { ?
? ?//cycle through each file ?
? ?foreach ( $files as $file ) { ?
? ? ?//make sure the file exists ?
? ? ?if ( file_exists ( $file )) { ?
? ? ? ?$valid_files [] =? $file ; ?
? ? ?} ?
? ?} ?
? } ?
? //if we have good files… ?
? if ( count ( $valid_files )) { ?
? ?//create the archive ?
? ?$zip? =? new? ziparchive(); ?
? ?if ( $zip ->open( $destination , $overwrite? ? ziparchive::overwrite : ziparchive::create) !== true) { ?
? ? ?return? false; ?
? ?} ?
? ?//add the files ?
? ?foreach ( $valid_files as $file ) { ?
? ? ?$zip ->addfile( $file , $file ); ?
? ?} ?
? ?//debug ?
? ?//echo ‘the zip archive contains ‘,$zip->numfiles,’ files with a status of ‘,$zip->status; ?
? ?//close the zip — done! ?
? ?$zip ->close(); ?
? ?//check to make sure the file exists ?
? ?return file_exists ( $destination ); ?
? }else{ ?
? ?return? false; ?
? } ?
} ?
/***** example usage ***/ ?
$files = array ('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? ?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函数代码段,就大家介绍完了。希望对你有帮助。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product