php语言

PHP代码实例

时间:2024-08-12 20:25:04 php语言 我要投稿

PHP实用的代码实例

  导语:PHP作为当今主流的服务器端开发语言,广泛应用于世界上各种排名比较靠前的网站。以下是百分网小编为大家整理的一些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(’@’, ’@’, $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 = ’’;

  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 ’’.$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 foo

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

  8. PHP解析 XML 数据

  //xml string

  $xml_string="

  Foo

  foo@bar.com

  Foobar

  foobar@foo.com

  ";

  //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, ’

  ’;

  }

  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[] = ’’

  . 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 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 ’

  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):/", $_POST[’url’])) {

  $_POST[’url’] = ’http://’.$_POST[’url’];

  }

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

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

  function makeClickableLinks($text) { $text = eregi_replace(’(((f|ht){1}tp://)[-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-z][0-9a-z-]+.)+[a-z]{2,3})’, ’1’, $text); return $text;}

【PHP代码实例】相关文章:

php中使用redis队列操作实例代码05-16

php获取新浪微博数据API的实例代码08-06

php语言字典代码06-08

PHP socket的配置及实例10-16

php查询mysql的实例09-09

php动态生成JavaScript代码10-03

php下载代码怎么写07-13

PHP源代码方式详解08-08

php中fsockopen用法实例06-20

php简单伪静态实例09-16