您好,欢迎访问一九零五行业门户网

给大家分享21个常用的PHP函数代码段

分享21个常用的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()*1000000);$max = $length/2;for($i=1; $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$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(‘@’, ‘@’, $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 = ‘’;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);}elsereturn true;elsereturn 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销毁目录删除一个目录,包括它的内容。/******@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) : $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”:”foo@foobar.com”,”interest”:[wordpress,php]} ‘;$obj=json_decode($json_string);echo $obj->name; //prints fooecho $obj->interest[1]; //prints php8. php解析 xml 数据//xml string$xml_string=”foofoo@bar.comfoobarfoobar@foo.com”;//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 $user['id'], ‘ ‘;//subnodes are accessed 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($_server['http_client_ip'])){$ip=$_server['http_client_ip'];}elseif (!emptyempty($_server['http_x_forwarded_for']))//to check ip is pass from proxy{$ip=$_server['http_x_forwarded_for'];}else{$ip=$_server['remote_addr'];}return $ip;}11. php强制性文件下载为用户提供强制性的文件下载功能。/*********************@file – 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[] = ‘. ‘” href=”#” title=”\” . $tag .‘\’ returned a count of ‘ . $count . ‘”>’. 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, ‘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 similarity14. php在应用程序中使用 gravatar 通用头像随着 wordpress 越来越普及,gravatar 也随之流行。由于 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 ‘‘&default=’.$default.’&size=’.$size.’&rating=’.$rating.’” width=”‘.$size.’px”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 $limitif(strlen($string) return $string;// is $break present between $limit and the end of the string?if(false !== ($breakpoint = strpos($string, $break, $limit))) {if($breakpoint $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 falseif(file_exists($destination) && !$overwrite) { return false; }//vars$valid_files = array();//if files were passed in…if(is_array($files)) {//cycle through each fileforeach($files as $file) {//make sure the file existsif(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 filesforeach($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 existsreturn 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 文件/***********************@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->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)lianqiangjavatp://)[-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调整图像尺寸创建图像缩略图需要许多时间,此代码将有助于了解缩略图的逻辑。/***********************@filename – path to the image*@tmpname – temporary path to thumbnail*@xmax – max width*@ymax – 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}
复制代码
其它类似信息

推荐信息