服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

运维之家

 找回密码
 注册
搜索
查看: 4907|回复: 0

10 个救命的 PHP 代码片段

[复制链接]
dirtysea 发表于 2011-10-19 11:28:53 | 显示全部楼层 |阅读模式
   
  关键词高亮

    function highlight($sString, $aWords) {
  •     if (!is_array ($aWords) || emptyempty ($aWords) || !is_string ($sString)) {
            return false;
  •     }
  •     $sWords = implode ('|', $aWords);
        return preg_replace ('@\b('.$sWords.')\b@si', '<strong style="background-color:yellow">$1</strong>', $sString);
  • }
  获取你的Feedburner的用户

    function get_average_readers($feed_id,$interval = 7){
  •     $today = date('Y-m-d', strtotime("now"));
        $ago = date('Y-m-d', strtotime("-".$interval." days"));
  •     $feed_url="https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=".$feed_id."&dates=".$ago.",".$today;
        $ch = curl_init();
  •     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_URL, $feed_url);
  •     $data = curl_exec($ch);
        curl_close($ch);
  •     $xml = new SimpleXMLElement($data);
        $fb = $xml->feed->entry['circulation'];

  •     $nb = 0;
  •     foreach($xml->feed->children() as $circ){
            $nb += $circ['circulation'];
  •     }
  •     return round($nb/$interval);
  • }

  自动生成密码

    function generatePassword($length=9, $strength=0) {
  •     $vowels = 'aeuy';
        $consonants = 'bdghjmnpqrstvz';
  •     if ($strength >= 1) {
            $consonants .= 'BDGHJLMNPQRSTVWXZ';
  •     }
        if ($strength >= 2) {
  •         $vowels .= "AEUY";
        }
  •     if ($strength >= 4) {
            $consonants .= '23456789';
  •     }
        if ($strength >= 8 ) {
  •         $vowels .= '@#$%';
        }

  •     $password = '';
  •     $alt = time() % 2;
        for ($i = 0; $i < $length; $i++) {
  •         if ($alt == 1) {
                $password .= $consonants[(rand() % strlen($consonants))];
  •             $alt = 0;
            } else {
  •             $password .= $vowels[(rand() % strlen($vowels))];
                $alt = 1;
  •         }
        }
  •     return $password;
  • }

  压缩多个CSS文件

    header('Content-type: text/css');
  • ob_start("compress");
    function compress($buffer) {
  •   /* remove comments */
      $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
  •   /* remove tabs, spaces, newlines, etc. */
      $buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);
  •   return $buffer;
    }

  • /* your css files */
  • include('master.css');
    include('typography.css');
  • include('grid.css');
    include('print.css');
  • include('handheld.css');
  • ob_end_flush();

  获取短网址

    function getTinyUrl($url) {
  •     return file_get_contents("http://tinyurl.com/api-create.php?url=".$url);
  • }

  根据生日计算年龄

    function age($date){
  •     $year_diff = '';
        $time = strtotime($date);
  •     if(FALSE === $time){
            return '';
  •     }
  •     $date = date('Y-m-d', $time);
        list($year,$month,$day) = explode("-",$date);
  •     $year_diff = date("Y") – $year;
        $month_diff = date("m") – $month;
  •     $day_diff = date("d") – $day;
        if ($day_diff < 0 || $month_diff < 0) $year_diff–;

  •     return $year_diff;
  • }

  计算执行时间

    //Create a variable for start time
  • $time_start = microtime(true);
  • // Place your PHP/HTML/JavaScript/CSS/Etc. Here
  • //Create a variable for end time
    $time_end = microtime(true);
  • //Subtract the two times to get seconds
    $time = $time_end - $time_start;
  • echo 'Script took '.$time.' seconds to execute';

  PHP的维护模式

    function maintenance($mode = FALSE){
  •     if($mode){
            if(basename($_SERVER['SCRIPT_FILENAME']) != 'maintenance.php'){
  •             header("Location: http://example.com/maintenance.php");
                exit;
  •         }
        }else{
  •         if(basename($_SERVER['SCRIPT_FILENAME']) == 'maintenance.php'){
                header("Location: http://example.com/");
  •             exit;
            }
  •     }
  • }

  阻止CSS样式被缓存
  • <link href="/stylesheet.css?<?php echo time(); ?>" rel="stylesheet" type="text/css" /&glt;

  为数字增加 st\nd\rd 等

    function make_ranked($rank) {
  •     $last = substr( $rank, -1 );
        $seclast = substr( $rank, -2, -1 );
  •     if( $last > 3 || $last == 0 ) $ext = 'th';
        else if( $last == 3 ) $ext = 'rd';
  •     else if( $last == 2 ) $ext = 'nd';
        else $ext = 'st';  

  •     if( $last == 1 && $seclast == 1) $ext = 'th';
  •     if( $last == 2 && $seclast == 1) $ext = 'th';
        if( $last == 3 && $seclast == 1) $ext = 'th';  

  •     return $rank.$ext;
  • }




您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|运维之家 ( 蜀ICP备12020351号 )

GMT+8, 2018-10-23 02:51 , Processed in 0.056277 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表