日期:2014-05-17  浏览次数:20517 次

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

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

1. PHP可阅读随机字符串

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

/**************
*@length – 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生成一个随机字符串
如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。
/************* ?
*@l – 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 ='info@domain.com',? $linkText ='Contact Us',$attrs? ='class ="emailencoder"'){ ?
?? ?// remplazar aroba y puntos ?
?? ?$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? = '<a href="ma'; ?
?? ?$part2? = 'ilto&#58;'; ?
??? ?$part3? = '"'.$attrs.' >'; ?
?? ?$part4? = '</a>'; ?
?? ?$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 '<a target="_blank" href="'. $dir . $file .'">'. $file .'</a><br>'."\n"; ?
?? ??? ??? ??? ?} ?
?? ??? ??? ??? ?} ?
?? ??? ??? ?closedir ( $handle ); ?
?? ??? ??? ?} ?
?? ??? ?} ?
?}
6. PHP销毁目录
删除一个目录,包括它的内容。
/***** ?
*@dir – Directory to destroy ?
*@virtual[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) :? $d