1、二十一个实用便利的PHP代码摘录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()*1000
2、000); $max = $length/2; for($i=1; $i=$max; $i+) $password.=$consorand(0,19); $password.=$vocalrand(0,4); return $password;2. PHP生成一个随机字符串如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。/*l - length of random string*/function generate_rand($l) $c= ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234
3、56789; srand(double)microtime()*1000000); for($i=0; $i$l; $i+) $rand.= $crand()%strlen($c); return $rand;3. PHP编码电子邮件地址使用此代码,可以将任何电子邮件地址编码为 html 字符实体,以防止被垃圾邮件程序收集。function encode_email($email=info, $linkText=Contact Us, $attrs =class=emailencoder ) / remplazar aroba y puntos $email = str_replace(, &
4、#64;, $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 = ; $encoded .= document.write($part1); $encoded .= doc
5、ument.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 .= ; return $encoded;4. PHP验证邮件地址电子邮件验证也许是中最常用的网页表单验证,此代码除了验证电子邮件地址,也可以选择检查邮件域所属 DNS 中的
6、 MX 记录,使邮件验证功能更加强大。function is_valid_email($email, $test_mx = false) if(eregi(_a-z0-9-+)(._a-z0-9-+)*(a-z0-9-+)(.a-z0-9-+)*(.a-z2,4)$, $email) if($test_mx) list($username, $domain) = split(, $email); return getmxrr($domain, $mxrecords); else return true; else return false;5. PHP列出目录内容function list_f
7、iles($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销毁目录删除一个目录,包括它的内容。/*dir - Directory to destroy*virtualoptional- whether a virtual directory*/function destroyDir($di
8、r, $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) destroyD
9、ir($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:foo,interest:wordpress,php ;$obj=$json_string);echo $obj
10、-name; /prints fooecho $obj-interest1; /prints php8. PHP解析 XML 数据 /xml string$xml_string=FoofooFoobarfoobar;/load the xml string using simplexml$xml = simplexml_load_string($xml_string);/loop through the each node of userforeach ($xml-user as $user)/access attributeecho $userid, ;/subnodes are acces
11、sed by - operatorecho $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($_SERVERHTTP_CLIENT_IP) $ip=$_SERVERHT
12、TP_CLIENT_IP; elseif (!emptyempty($_SERVERHTTP_X_FORWARDED_FOR) /to check ip is pass from proxy $ip=$_SERVERHTTP_X_FORWARDED_FOR; else $ip=$_SERVERREMOTE_ADDR; return $ip; 11. PHP强制性文件下载为用户提供强制性的文件下载功能。 /*file - path to file*/function force_download($file)if (isset($file)&(file_exists($file) header(
13、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
14、_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;$cloudTag
15、s = . htmlspecialchars( stripslashes( $tag ) ) . ;return join( n, $cloudTags ) . n;/* Sample usage */$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, Encrypti
16、on = 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 也随之流行。
17、由于 Gravatar 提供了易于使用的 API,将其纳入应用程序也变得十分方便。 /*email - Email address to show gravatar for*size - size of gravatar*default - URL of default gravatar to use*rating - rating of Gravatar(G, PG, R, X)*/function show_gravatar($email, $size, $default, $rating)echo ; 15. PHP在字符断点处截断文字所谓断字 (word break),即一个单词可在转
18、行时断开的地方。这一函数将在断字处截断字符串。 / Original PHP code by Chirp Internet: .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 $limitif(strlen($string) = $limit)return $string;/ is $break prese
19、nt between $limit and the end of the string?if(false != ($breakpoint = strpos($string, $break, $limit) if($breakpoint open($destination,$overwrite ? ZIPARCHIVE:OVERWRITE : ZIPARCHIVE:CREATE) != true) return false;/add the filesforeach($valid_files as $file) $zip-addFile($file,$file);/debug/echo The
20、zip archive contains ,$zip-numFiles, files with a status of ,$zip-status;/close the zip - done!$zip-close();/check to make sure the file existsreturn file_exists($destination);elsereturn false;/* Example Usage */$files=array(file1.jpg, file2.jpg, file3.gif);create_zip($files, myzipfile.zip, true); 1
21、7. PHP解压缩 Zip 文件 /*file - path to zip file*destination - destination directory for unzipped files*/function unzip_file($file, $destination)/ create object$zip = new ZipArchive() ;/ open archiveif ($zip-open($file) != TRUE) die (Could not open archive);/ extract contents to destination directory$zip-
22、extractTo($destination);/ close archive$zip-close();echo Archive extracted to directory; 18. PHP为 URL 地址预设 http 字符串有时需要接受一些表单中的网址输入,但用户很少添加 http:/ 字段,此代码将为网址添加该字段。 if (!preg_match(/(http|ftp):/, $_POSTurl) $_POSTurl = http:/.$_POSTurl; 19. PHP将网址字符串转换成超级链接该函数将 URL 和 E-mail 地址字符串转换为可点击的超级链接。 function
23、 makeClickableLinks($text) $text = eregi_replace(f|ht)1tp:/)-a-zA-Z0-9:%_+.#?&/=+), 1, $text); $text = eregi_replace(:space:()(www.-a-zA-Z0-9:%_+.#?&/=+), 12, $text); $text = eregi_replace(_.0-9a-z-+(0-9a-z0-9a-z-+.)+a-z2,3), 1, $text); return $text; 20. PHP调整图像尺寸创建图像缩略图需要许多时间,此代码将有助于了解缩略图的逻辑。 /*filename - path to the image*tmpname - temporary path to thumbnail
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1