加入收藏 | 设为首页 | 网站地图 | RSS订阅
阅读内容

PHP开发网站常用的21种功能的代码汇总

日期:2010-1-21     来源:不详     作者:5i93.com收集

    PHP 是目前使用最广泛的基于 Web 的编程语言,驱动着数以百万计的网站,其中也包括如 Facebook 等一些大型站点。这里收集了 21 段实用便捷的 PHP 代码摘录,对每种类型的 PHP 开发者都会有所帮助。

    1. 可阅读随机字符串

    此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。

    /**************
    *@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. 生成一个随机字符串

    如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。

    /*************
    *@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. 编码电子邮件地址

    使用此代码,可以将任何电子邮件地址编码为 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. 验证邮件地址

    电子邮件验证也许是中最常用的网页表单验证,此代码除了验证电子邮件地址,也可以选择检查邮件域所属 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. 列出目录内容

    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. 销毁目录

    删除一个目录,包括它的内容。

    /*****
    *@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. 解析 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

发表评论】【告诉好友】【打印此文】【收藏此文】【关闭窗口

相关新闻
    本文评论
    推荐广告
    关于本站 | 版权声明 | 免责声明 | 联系我们 | 广告服务 | 加入收藏 | 网站地图 | 网站搜索 | RSS订阅