1. 云栖社区>
  2. PHP教程>
  3. 正文

21个实用的PHP代码

作者:用户 来源:互联网 时间:2017-12-01 10:48:14

php代码实用

21个实用的PHP代码 - 摘要: 本文讲的是21个实用的PHP代码, http://www.th7.cn/Program/php/201604/1. PHP可阅读随机字符串此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。/**************[email protec


http://www.th7.cn/Program/php/201604/1. PHP可阅读随机字符串
此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。
/**************
[email protected] - 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()*http://www.th7.cn/Program/php/201604/1000000);
    $max = $length/2;
    for($i=http://www.th7.cn/Program/php/201604/1; $i<=$max; $i++)
    {
    $password.=$conso[rand(0,http://www.th7.cn/Program/php/201604/19)];
    $password.=$vocal[rand(0,4)];
    }
    return $password;
}
2. PHP生成一个随机字符串
如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。
/*************
[email protected] - length of random string
*/
function generate_rand($l){
  $c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0http://www.th7.cn/Program/php/201604/123456789";
  srand((double)microtime()*http://www.th7.cn/Program/php/201604/1000000);
  for($i=0; $i<$l; $i++) {
      $rand.= $c[rand()%strlen($c)];
  }
  return $rand;
}
3. PHP编码电子邮件地址
使用此代码,可以将任何电子邮件地址编码为 html 字符实体,以防止被垃圾邮件程序收集。
function encode_email([email protected], $linkText=¹Contact Us¹, $attrs =¹class="emailencoder"¹ )
{
    // remplazar aroba y puntos
    $email = str_replace([email protected], ¹@¹, $email);
    $email = str_replace(¹.¹, ¹.¹, $email);
    $email = str_split($email, 5);
    $linkText = str_replace([email protected], ¹@¹, $linkText);
    $linkText = str_replace(¹.¹, ¹.¹, $linkText);
    $linkText = str_split($linkText, 5);
    $parthttp://www.th7.cn/Program/php/201604/1 = ¹    $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);
        }
        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.¹
¹."";
                }
            }
            closedir($handle);
        }
    }
}
6. PHP销毁目录
删除一个目录,包括它的内容。
/*****
[email protected] - Directory to destroy
[email protected][optional]- whether a virtual directory
*/
function destroyDir($dir, $virtual = false)
{
    $ds = DIRECTORY_SEPARATOR;
    $dir = $virtual ? realpath($dir) : $dir;
    $dir = substr($dir, -http://www.th7.cn/Program/php/201604/1) == $ds ? substr($dir, 0, -http://www.th7.cn/Program/php/201604/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":http://www.th7.cn/Program/php/201604/1,"name":"foo","email":"[email protected]","interest":["wordpress","php"]} ¹;
$obj=json_decode($json_string);
echo $obj->name; //prints foo
echo $obj->interest[http://www.th7.cn/Program/php/201604/1]; //prints php
8. PHP解析 XML 数据
//xml string
$xml_string="<?xml version=¹http://www.th7.cn/Program/php/201604/1.0¹?>


Foo
[email protected]


Foobar
[email protected]

";
//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;
}
http://www.th7.cn/Program/php/201604/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;
}
http://www.th7.cn/Program/php/201604/1http://www.th7.cn/Program/php/201604/1. PHP强制性文件下载
为用户提供强制性的文件下载功能。
/********************
[email protected] - 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";
}
}
http://www.th7.cn/Program/php/201604/12. PHP创建标签云
function getCloud( $data = array(), $minFontSize = http://www.th7.cn/Program/php/201604/12, $maxFontSize = 30 )
{
$minimumCount = min( array_values( $data ) );
$maximumCount = max( array_values( $data ) );
$spread = $maximumCount - $minimumCount;
$cloudHTML = ¹¹;
$cloudTags = array();
$spread == 0 && $spread = http://www.th7.cn/Program/php/201604/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("", $cloudTags ) ."";
}
/**************************
**** Sample usage ***/
$arr = Array(¹Actionscript¹ => 35, ¹Adobe¹ => 22, ¹Array¹ => 44, ¹Background¹ => 43,
¹Blur¹ => http://www.th7.cn/Program/php/201604/18, ¹Canvas¹ => 33, ¹Class¹ => http://www.th7.cn/Program/php/201604/15, ¹Color Palette¹ => http://www.th7.cn/Program/php/201604/1http://www.th7.cn/Program/php/201604/1, ¹Crop¹ => 42,
¹Delimiter¹ => http://www.th7.cn/Program/php/201604/13, ¹Depth¹ => 34, ¹Design¹ => 8, ¹Encode¹ => http://www.th7.cn/Program/php/201604/12, ¹Encryption¹ => 30,
¹Extract¹ => 28, ¹Filters¹ => 42);
echo getCloud($arr, http://www.th7.cn/Program/php/201604/12, 36);
http://www.th7.cn/Program/php/201604/13. PHP寻找两个字符串的相似性
PHP 提供了一个极少使用的 similar_text 函数,但此函数非常有用,用于比较两个字符串并返回相似程度的百分比。
similar_text($stringhttp://www.th7.cn/Program/php/201604/1, $string2, $percent);
//$percent will have the percentage of similarity
http://www.th7.cn/Program/php/201604/14. PHP在应用程序中使用 Gravatar 通用头像
随着 WordPress 越来越普及,Gravatar 也随之流行。由于 Gravatar 提供了易于使用的 API,将其纳入应用程序也变得十分方便。
/******************
[email protected] - Email address to show gravatar for
[email protected] - size of gravatar
[email protected] - URL of default gravatar to use
[email protected] - rating of Gravatar(G, PG, R, X)
*/
function show_gravatar($email, $size, $default, $rating)
{
echo ¹21个实用的PHP代码height="¹.$size.¹px"/>¹;
}
http://www.th7.cn/Program/php/201604/15.%20PHP在字符断点处截断文字
所谓断字%20(word%20break),即一个单词可在转行时断开的地方。这一函数将在断字处截断字符串。
//%20Original%20PHP%20code%20by%20Chirp%20Internet:%20www.chirp.com.au
//%20Please%20acknowledge%20use%20of%20this%20code%20by%20including%20this%20header.
function%20myTruncate($string,%20$limit,%20$break=".",%20$pad="...")%20{
//%20return%20with%20no%20change%20if%20string%20is%20shorter%20than%20$limit
if(strlen($string)%20<=%20$limit)
return%20$string;
//%20is%20$break%20present%20between%20$limit%20and%20the%20end%20of%20the%20string?
if(false%20!==%20($breakpoint%20=%20strpos($string,%20$break,%20$limit)))%20{
if($breakpoint%20<%20strlen($string)%20-%20http://www.th7.cn/Program/php/201604/1)%20{
$string%20=%20substr($string,%200,%20$breakpoint)%20.%20$pad;
}
}
return%20$string;
}
/*****%20Example%20****/
$short_string=myTruncate($long_string,%20http://www.th7.cn/Program/php/201604/100,%20¹%20¹);
http://www.th7.cn/Program/php/201604/16.%20PHP文件%20Zip%20压缩
function%20create_zip($files%20=%20array(),$destination%20=%20¹¹,$overwrite%20=%20false)%20{
//if%20the%20zip%20file%20already%20exists%20and%20overwrite%20is%20false,%20return%20false
if(file_exists($destination)%20&&%20!$overwrite)%20{%20return%20false;%20}
//vars
$valid_files%20=%20array();
//if%20files%20were%20passed%20in...
if(is_array($files))%20{
//cycle%20through%20each%20file
foreach($files%20as%20$file)%20{
//make%20sure%20the%20file%20exists
if(file_exists($file))%20{
$valid_files[]%20=%20$file;
}
}
}
//if%20we%20have%20good%20files...
if(count($valid_files))%20{
//create%20the%20archive
$zip%20=%20new%20ZipArchive();
if($zip->open($destination,$overwrite%20?%20ZIPARCHIVE::OVERWRITE%20:%20ZIPARCHIVE::CREATE)%20!==%20true)%20{
return%20false;
}
//add%20the%20files
foreach($valid_files%20as%20$file)%20{
$zip->addFile($file,$file);
}
//debug
//echo%20¹The%20zip%20archive%20contains%20¹,$zip->numFiles,¹%20files%20with%20a%20status%20of%20¹,$zip->status;
//close%20the%20zip%20--%20done!
$zip->close();
//check%20to%20make%20sure%20the%20file%20exists
return%20file_exists($destination);
}
else
{
return%20false;
}
}
/*****%20Example%20Usage%20***/
$files=array(¹filehttp://www.th7.cn/Program/php/201604/1.jpg¹, ¹file2.jpg¹, ¹file3.gif¹);
create_zip($files, ¹myzipfile.zip¹, true);
http://www.th7.cn/Program/php/201604/17. PHP解压缩 Zip 文件
/**********************
[email protected] - path to zip file
[email protected] - 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¹;
}
http://www.th7.cn/Program/php/201604/18. PHP为 URL 地址预设 http 字符串
有时需要接受一些表单中的网址输入,但用户很少添加 http:// 字段,此代码将为网址添加该字段。
if (!preg_match("/^(http|ftp):/", $_POST[¹url¹])) {
   $_POST[¹url¹] = ¹http://¹.$_POST[¹url¹];
}
http://www.th7.cn/Program/php/201604/19. PHP将网址字符串转换成超级链接
该函数将 URL 和 E-mail 地址字符串转换为可点击的超级链接。
function makeClickableLinks($text) {
$text = eregi_replace(¹(((f|ht){http://www.th7.cn/Program/php/201604/1}tp://)[[emailhttp://www.th7.cn/Program/php/201604/160;protected]:%_+.~#?&//=]+)¹,
¹http://www.th7.cn/Program/php/201604/1¹, $text);
$text = eregi_replace(¹([[:space:]()[{}])(www.[[emailhttp://www.th7.cn/Program/php/201604/160;protected]:%_+.~#?&//=]+)¹,
¹http://www.th7.cn/Program/php/201604/12¹, $text);
$text = eregi_replace(¹([_.0-9a-z-][emailhttp://www.th7.cn/Program/php/201604/160;protected]([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})¹,
¹http://www.th7.cn/Program/php/201604/1¹, $text); 
return $text;
}
20. PHP调整图像尺寸
创建图像缩略图需要许多时间,此代码将有助于了解缩略图的逻辑。
/**********************
[email protected] - path to the image
[email protected] - temporary path to thumbnail
[email protected] - max width
[email protected] - max height
*/
function resize_image($filename, $tmpname, $xmax, $ymax)
{
    $ext = explode(".", $filename);
    $ext = $ext[count($ext)-http://www.th7.cn/Program/php/201604/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;
}
2http://www.th7.cn/Program/php/201604/1. 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
}
英文原稿:2http://www.th7.cn/Program/php/201604/1 Really Useful & Handy PHP Code Snippets | Web Developer Plus

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 代码 实用 ,以便于您获取更多的相关知识。

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

云服务器9.9元/月,大学必备