PHP 代码片段

转载的, 用着方便!

1. 可阅读随机字符串
 此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能
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. 生成一个随机字符串
如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。
function generate_rand($len){
    $c= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    srand((double)microtime()*1000000);
    for($i=0; $i<$len; $i++) {
        $rand.= $c[rand()%strlen($c)];
    }
    return $rand;
}

 function rand_password( $length = 8 ) {
    // 密码字符集,可任意添加你需要的字符
    $chars = ‘[email protected]#$%^&*()-_ []{}<>~`+=,.;:/?|’;
    $password = ”;
    for ( $i = 0; $i < $length; $i++ )
    {
        // 这里提供两种字符获取方式
        // 第一种是使用 substr 截取$chars中的任意一位字符;
        // 第二种是取字符数组 $chars 的任意元素
        // $password .= substr($chars, mt_rand(0, strlen($chars) – 1), 1);
        $password .= $chars[ mt_rand(0, strlen($chars) - 1) ];
    }
    return $password;
} 

 3. 编码电子邮件地址
可以将任何电子邮件地址编码为 HTML 字符实体,以防止被垃圾邮件程序收集。
    function encode_email($email=‘[email protected]‘, $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 = ‘<a href="ma‘;
        $part2 = ‘ilto:‘;
        $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);
            }
        }
    }

    -----------------------------
    function list_dir($path){
        $dp = dir($path);
        while( $fp = $dp->read() ){
            if ( $fp==‘.‘ ){
                }
        }
    }
    -----------------------------

7. 解析 JSON 数据
    $json_string=‘{"id":1,"name":"foo","email":"[email protected]","interest":["wordpress","php"]} ‘;
    $obj=json_decode($json_string);
    echo $obj->name;    //prints foo
    echo $obj->interest[1];    //prints php
    $ary = json_decode($json_string,true);
    echo $ary[‘id‘];

10. 获取客户端真实 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. 强制性文件下载
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. 创建标签云
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. 寻找两个字符串的相似性
similar_text(‘abcde‘, ‘abcdef‘, $percent);

echo $percent;

16. 文件 Zip 压缩
function create_zip($files = array(), $destination = ‘‘, $overwrite = false){
    if(file_exists($destination) && !$overwrite){
        return false;
    }
    $valid_files = array();
    if(is_array($files)){
        foreach($files as $file){
            if(file_exists($file)){
                $valid_files[] = $file;
            }
        }
    }

    if(count($valid_files)){
        $zip = new ZipArchive();
        if($zip -> open($destination, $overwrite ? ZIPARCHIVE :: OVERWRITE : ZIPARCHIVE :: CREATE) !== true){
            return false;
        }
        foreach($valid_files as $file){
            $zip -> addFile($file, $file);
        }
        $zip -> close();
        return file_exists($destination);
    }else{
        return false;
    }
}
/**
 * **** Example Usage **
 */
$files = array(‘question_20120828_211308.csv‘, ‘question_20120828_211326.csv‘);
create_zip($files, ‘myzipfile.zip‘, true);

17. 解压缩 Zip 文件

function unzip_file($file, $destination){
    $zip = new ZipArchive() ;
    if ($zip->open($file) !== TRUE) {
        die (‘Could not open archive‘);
    }
    $zip->extractTo($destination);
    $zip->close();
}

20. 调整图像尺寸
$imgsrc = "http://www.nowamagic.net/images/3.jpg";
$width = 780;
$height = 420;

resizejpg($imgsrc, $imgdst, $width, $height);

function resizejpg($imgsrc, $imgdst, $imgwidth, $imgheight){
    // $imgsrc jpg格式图像路径 $imgdst jpg格式图像保存文件名 $imgwidth要改变的宽度 $imgheight要改变的高度
    // 取得图片的宽度,高度值
    $arr = getimagesize($imgsrc);
    header("Content-type: image/jpg");

    $imgWidth = $imgwidth;
    $imgHeight = $imgheight;
    // Create image and define colors
    $imgsrc = imagecreatefromjpeg($imgsrc);
    $image = imagecreatetruecolor($imgWidth, $imgHeight); //创建一个彩色的底图
    imagecopyresampled($image, $imgsrc, 0, 0, 0, 0, $imgWidth, $imgHeight, $arr[0], $arr[1]);
    imagepng($image);
    imagedestroy($image);
}

21. 数组转 json 格式, 包含中文字符 替代json_encode
function jsonEncode($var) {
        switch (gettype($var)) {
            case ‘boolean‘:
                return $var ? ‘true‘ : ‘false‘;
            case ‘integer‘:
            case ‘double‘:
                return $var;
            case ‘resource‘:
            case ‘string‘:
                return ‘"‘. str_replace(array("\r", "\n", "<", ">", "&"),
                    array(‘\r‘, ‘\n‘, ‘\x3c‘, ‘\x3e‘, ‘\x26‘),
                    addslashes($var)) .‘"‘;
            case ‘array‘:
                if (empty($var) || array_keys($var) === range(0, sizeof($var) - 1)) {
                    $output = array();
                    foreach ($var as $v) {
                        $output[] = jsonEncode($v);
                    }
                    return ‘[ ‘. implode(‘, ‘, $output) .‘ ]‘;
                }
            case ‘object‘:
                $output = array();
                foreach ($var as $k => $v) {
                    $output[] = jsonEncode(strval($k)) .‘: ‘. jsonEncode($v);
                }
                return ‘{ ‘. implode(‘, ‘, $output) .‘ }‘;
            default:
                return ‘null‘;
        }
}

22. 删除目录及其下所有文件
//Delete folder function
function deleteDirectory($dir) {
    if (!file_exists($dir)) return true;
    if (!is_dir($dir) || is_link($dir)) return unlink($dir);
    foreach (scandir($dir) as $item) {
        if ($item == ‘.‘ || $item == ‘..‘) continue;
        if (!deleteDirectory($dir . "/" . $item)) {
            chmod($dir . "/" . $item, 0777);
            if (!deleteDirectory($dir . "/" . $item)) return false;
        };
    }
    return rmdir($dir);
}

  

时间: 2024-10-26 20:15:27

PHP 代码片段的相关文章

solr分布式索引【实战一、分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例】

1 private static Properties prop = new Properties(); 2 3 private static String confFilePath = "conf" + File.separator + "config.properties";// 配置文件目录 4 static { 5 // 加载properties 6 InputStream is = null; 7 InputStreamReader isr = null;

100个直接可以拿来用的JavaScript实用功能代码片段

把平时网站上常用的一些实用功能代码片段通通收集起来,方面网友们学习使用,利用好的话可以加快网友们的开发速度,提高工作效率. 目录如下: 1.原生JavaScript实现字符串长度截取2.原生JavaScript获取域名主机3.原生JavaScript清除空格4.原生JavaScript替换全部5.原生JavaScript转义html标签6.原生JavaScript还原html标签7.原生JavaScript时间日期格式转换8.原生JavaScript判断是否为数字类型9.原生JavaScript

关于UITabBar各部分自定义的代码片段

一.自定义TabBar选项卡背景默认UITabBarController的TabBar背景是黑色的,如何自定义成背景图片呢? UITabBarController *tabBarController = [[UITabBarController alloc] init]; // 获取选项卡控制器视图的所有子视图,保存到一数组中 NSArray *array = [tabBarController.view subviews]; // 索引值为1的应该就是TabBar UITabBar  *tab

常用python日期、日志、获取内容循环的代码片段

近段时间对shell脚本和python进行了梳理,将一些脚本中常用的内容,考虑多种方法整理出来,形成有用的代码片段,这样就可以在需要的时候直接使用,也可以用于备忘和思考.本次整理的代码片段有: python中日期.时间常用获取方法: 记录处理日志的logging模块使用:从目录,文件,命名结果中,获取循环条件进行循环.我将这些有用的代码片段整理在一个Python脚本中了,并且测试可用.脚本内容如下: #!/usr/bin/env python #_*_coding:utf8_*_ #常用日期和时

sublime text3 之snippet编写代码片段

sublime text 3 中有个强大的功能就是可以编写各种文件类型的snippet代码片段,可以节省大量的时间. 文件名为:jekyll-top.sublime-snippet(.sublime-snippet)后缀必须这样 <snippet> <content><![CDATA[/** * author:qinbb * title:智能推荐${1:标题} */ ${2}]]></content> <!-- Optional: Set a tabT

Sublime Text Snippets(代码片段)功能

我们在编写代码的时候,总会遇到一些需要反复使用的代码片段.这时候就需要反复的复制和黏贴,大大影响效率.我们利用Sublime Text的snippet功能,就能很好的解决这一问题.通俗的讲,就是把我们常用的代码分别保存起啦,然后通过插件的形式来反复调用. 创建方法:Tools > New Snippet 这时你会看到如下示例代码: 1 <snippet> 2 <content><![CDATA[ 3 Hello, ${1:this} is a ${2:snippet}.

xcode自动生成代码片段

一.什么是代码片段 当在Xcode中输入dowhile并回车后,Xcode会出现下图所示的提示代码: 这就是代码片段,目的是使程序员以最快的速度输入常用的代码片段,提高编程效率.该功能是从Xcode4开始引入的.在Xcode中的位置如下图所示: 里面有很多Xcode自带的代码片段,上例中的dowhile就是其中的一个. 二.如何自定义代码片段 由于项目.所用语言或者编码习惯的差别,不同的程序员习惯用的代码片段也不尽相同,这就有了自定义代码片段的需求,好在Xcode是支持该功能的. @proper

10个常用的JQUERY代码片段

jQuery被用在无数个网站的页面上,它是使用最为广泛的javascript库之一.jQuery的受欢迎程度的部分是它的简单性.它能够通过简单的语句完成大部分复杂的工作.有许多jQuery片段我们在每天不断重复的使用,这里总结了10条你必须知道的jQuery代码片段. 返回顶部 <a class="top" href="#">Back to top</a> // Back To Top $('a.top').click(function(){

sublime text 2自定义代码片段

本文引用   http://www.blogjava.net/Hafeyang/archive/2012/08/17/how_to_create_code_snippet_in_subline_text_2.html 对于前端工程师来讲,写一个html页面的基本结构是体力活,每次去拷贝一个也麻烦,sublime text 2 提供了一个很好的复用代码片段.下面介绍一下创建一个html5的代码片段的过程. 在菜单上点击Tools -> New Snippet,(工具->代码段)会新建一个xml文

代码片段使用 加速开发进度

提高生产效率方式 首先,必须先强调下代码复用的重要性. 复用的重要性:第一,较高的生产效率:第二,较高的软件质量:第三,适当的使用复用可以改善系统的可维护性. 复用不仅仅是代码的复用,代码复用只是复用的初等形式 传统的复用:代码的剪贴复用,算法的复用,数据结构的复用. 在一个面向对象的语言中,数据的抽象化.继承.封装和多态性等特性使得一个系统可以在更高的层次上提供复用性. 抽象化和继承关系使得概念和定义可以复用.多态性使得实现和应用可以复用.抽象化和封装可以保持和促进系统的可维护性.使得复用的焦