php常用方法汇总
1. PHP可阅读随机字符串
此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。
1 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生成一个随机字符串
如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。
1 2 |
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 字符实体,以防止被垃圾邮件程序收集。
1 |
function encode_email($email= 'info@domain.com' , $linkText= 'Contact Us' , $attrs = 'class="emailencoder"' ) {
|
4. PHP验证邮件地址
电子邮件验证也许是中最常用的网页表单验证,此代码除了验证电子邮件地址,也可以选择检查邮件域所属 DNS 中的 MX 记录,使邮件验证功能更加强大。
1 |
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列出目录内容
1 |
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销毁目录
删除一个目录,包括它的内容。
1 2 |
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 等等。
1 |
$json_string = '{"id":1,"name":"foo","email":"foo@foobar.com","interest":["wordpress","php"]} ' ; $obj =json_decode( $json_string ); echo $obj ->name;
|
8. PHP解析 XML 数据
9. PHP创建日志缩略名
创建用户友好的日志缩略名。
1 |
function create_slug( $string ){ $slug =preg_replace( '/[^A-Za-z0-9-]+/' , '-' , $string ); return $slug ; }
|
10. PHP获取客户端真实 IP 地址
该函数将获取用户的真实 IP 地址,即便他使用代理服务器。
1 |
function getRealIpAddr() { if (!emptyempty( $_SERVER [ 'HTTP_CLIENT_IP' ])) { $ip = $_SERVER [ 'HTTP_CLIENT_IP' ]; } elseif (!emptyempty( $_SERVER [ 'HTTP_X_FORWARDED_FOR' ]))
|
11. PHP强制性文件下载
为用户提供强制性的文件下载功能。
1 2 |
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创建标签云
1 |
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 [] = '<a style="font-size: ' . floor ( $size ) . 'px' . '" href="#" title="\'' . $tag . '\' returned a count of ' . $count . '">' . htmlspecialchars( stripslashes ( $tag ) ) . '</a>' ; } return join( "\n" , $cloudTags ) . "\n" ; } $arr = Array( 'Actionscript' => 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 函数,但此函数非常有用,用于比较两个字符串并返回相似程度的百分比。
1 |
similar_text( $string1 , $string2 , $percent );
|
14. PHP在应用程序中使用 Gravatar 通用头像
随着 WordPress 越来越普及,Gravatar 也随之流行。由于 Gravatar 提供了易于使用的 API,将其纳入应用程序也变得十分方便。
1 2 3 |
function show_gravatar( $email , $size , $default , $rating ) { echo '<img src="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),即一个单词可在转行时断开的地方。这一函数将在断字处截断字符串。
16. PHP文件 Zip 压缩
1 2 3 |
function create_zip( $files = array (),
|