您当前的位置: 首页 > 网站编程 > PHP教程 > 实用PHP代码二十例

实用PHP代码二十例

作者:不详 来源:网络 发布时间: 2014-08-20 13:46 点击:
1. PHP可阅读随机字符串 此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。 /************** *@length - length of random string (must be a multiple of 2) **************/ function readable_random_string($length = 6){ $conso

实用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<=$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) : $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 foo

  echo $obj->interest[1]; //prints php

  8. PHP解析 XML 数据

  //xml string

  $xml_string="<?xml version='1.0'?>

  <users>

  <user id='398'>

  <name>Foo</name>

  <email>foo@bar.com</name>

  </user>

  <user id='867'>

  <name>Foobar</name>

  <email>foobar@foo.com</name>

  </user>

  </users>";

  //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, '<br />';

  }

  9. PHP创建日志缩略名

  创建用户友好的日志缩略名。

  function create_slug($string){

  $slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);

  return $slug;

  }

  10. PHP获取客户端真实 IP 地址

  该函数将获取用户的真实 IP 地址,即便他使用代理服务器。

  function getRealIpAddr()

  {

     if (!emptyempty(实用PHP代码二十一个实例 - 站长学院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[] = '<a style="font-size: ' . floor( $size ) . 'px'

  . '" href="#" title="'' . $tag .

  '' returned a count of ' . $count . '">'

  . htmlspecialchars( stripslashes( $tag ) ) . '</a>';

  }

  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 similarity

  14. 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 '<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),即一个单词可在转行时断开的地方。这一函数将在断字处截断字符串。

  // 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) <= $limit)

  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 文件

  /**********************

  *@file - path to zip file

  *@destination - 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):/", 实用PHP代码二十一个实例 - 站长学院POST['url'];

  }

  19. PHP将网址字符串转换成超级链接

  该函数将 URL 和 E-mail 地址字符串转换为可点击的超级链接。

  function makeClickableLinks($text) { $text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)', '<a href="1">1</a>', $text); $text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)', '1<a href="http://2">2</a>', $text); $text = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})', '<a href="mailto:1">1</a>', $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 <= $xmax && $y <= $ymax)

         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;

  }
分享到:
本文"实用PHP代码二十例"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 广告合作 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4