[php] 代码片段

来源:互联网 发布:js 对象复制互不影响 编辑:程序博客网 时间:2024/05/17 18:12

生成一个随机字符串

创建一个随机字符串,作为用户的随机密码等。

    /*************    *@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;     }

编码电子邮件地址

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

验证邮件地址

    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;    }

列出目录内容

    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);            }        }    }

删除目录

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

    /*****    *@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;        }    }

解析 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 userforeach ($xml->user as $user){   //access attribute   echo $user['id'], '  ';   //subnodes are accessed by -> operator   echo $user->name, '  ';   echo $user->email, '<br />';}

获取客户端真实 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;    }

强制性文件下载

    /********************    *@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";        }    }

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

解压缩 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';    }

调整图像尺寸

    /**********************    *@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;    }

检测是否为 ajax 请求

    if(!emptyempty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){        //If AJAX Request Then    }else{    //something else    }

生成标签云

    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 color: rgb(51, 153, 51); ">. 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);
0 0
原创粉丝点击