成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP常用函數(shù)整理

lijy91 / 2141人閱讀

工作中常用的PHP函數(shù),整理出來,以方便后邊快速使用輪子。
1、字符串編碼轉(zhuǎn)換
/**
?*?字符串編碼轉(zhuǎn)換
?*?
?*?@param??string??$str??????????待處理的字符
?*?@param??string??$in_charset???輸入編碼
?*?@param??string??$out_charset??輸出編碼
?*?@return?string
?*/
function?str_iconv($str,?$in_charset?=?"UTF-8",?$out_charset?=?"GBK")
{
??$str?=?mb_convert_encoding($str,?$out_charset,?$in_charset);
??return?$str;
}
2、數(shù)組編碼轉(zhuǎn)換
/**
?*?數(shù)組編碼轉(zhuǎn)換
?*?
?*?@param??array???$arr??????????待處理的數(shù)組
?*?@param??string??$in_charset???輸入編碼
?*?@param??string??$out_charset??輸出編碼
?*?@return?array
?*/
function?arr_iconv($arr,?$in_charset?=?"UTF-8",?$out_charset?=?"GBK")
{
??$arr?=?eval("return?"?.?mb_convert_encoding(var_export($arr,true),?$out_charset,?$in_charset)?.?";");
??return?$arr;
}
3、從內(nèi)容中匹配出圖片信息
/**
?*?從內(nèi)容中匹配出圖片信息(有多少圖片信息就匹配出多少)
?*
?*?@param??string???$content?????????內(nèi)容信息
?*?@param??boolean??$b_only_img_url??是否只獲取圖片地址,默認(rèn)為true
?*?@return?array
?*???
  • 當(dāng)$b_only_img_url?=?true時(shí),只返回圖片地址的一維數(shù)組
  • ?*???
  • 當(dāng)$b_only_img_url?=?false時(shí),返回圖片地址的多種信息,二維數(shù)組,如下:
  • ?*???
  • img_tag??=>??""
  • ?*???
  • img_src??=>??"src="http://www.baidu.com/img/bdlogo.gif""
  • ?*???
  • img_url??=>??"http://www.baidu.com/img/bdlogo.gif"
  • ?*/ function?get_img_list_from_content($content,?$b_only_img_url?=?true) { ??preg_match_all("/)

    [^<]*?

    /iU" => "$1", "/&[a-z]+;/" => "", "/<([a-z]+)[^>]*?>/i" => "<1>", "/(){2,}/i" => "1", "/(
    s*){2,}/" => "
    ", "/<[^>]*?$/ms" => "", "/s+/" => "", ); $pattern = array_keys($mixed_arr); $replacement = array_values($mixed_arr); $content = preg_replace($pattern, $replacement, $content); $content = mb_substr($content, 0, $length, "GBK"); $content = trim($content); $content = preg_replace("~<[w]+$~", "", $content); if(trim(strip_tags($content)) == "") $content = ""; //空標(biāo)簽返回空 return $content; }
    7、根據(jù)過期時(shí)間判斷剩余的天數(shù)
    /**
     * 根據(jù)過期時(shí)間判斷剩余的天數(shù)
     * @desc   如果為0,則表示活動(dòng)已經(jīng)結(jié)束
     * @param  $expire_time 時(shí)間戳
     * @return float|int
     */
    function check_remaining_days($expire_time)
    {
        // 獲取當(dāng)前時(shí)間
        $cur_time = time();
        $expire_time = (int)$expire_time;
    
        $diff_time = ($expire_time - $cur_time);
        $remaining_days_count = 0;
        if($diff_time > 0)
        {
            // 計(jì)算剩余的天數(shù)
            $remaining_days_count = ceil($diff_time / (24 * 3600));
        }
    
        return $remaining_days_count;
    }
    
    8、切割字符串
    /**
     * 切割字符串
     * 
     * @param  string  $str     需要切割的字符串
     * @param  int     $lenght  長度
     * @param  string  $tail    超過長度后面追加字符
     * @param  string  $encrypt 編碼,默認(rèn)GBK
     * @return string
     */
    function cut_str($str, $lenght, $tail="...", $encrypt="GBK")
    {
      if(mb_strlen($str,$encrypt) > $lenght)
      {
        return mb_substr($str, 0, $lenght, "GBK").$tail;
      }
      else
      {
        return $str;
      }
    
    }
    9、php頁面返回前端頁面js信息
    /**
     * 錯(cuò)誤信息提示,并退出程序
     * @param string $msg 錯(cuò)誤信息
     */
    if (!function_exists("js_pop_msg_parent"))
    {
        function js_pop_msg_parent($msg,$b_reload=false,$url=NULL)
        {
            echo "";
            exit;
        }
    }
    
    // 舉例:
    index.php
     0 ? "操作成功" : "操作失?。?;
    $b_reload = $user_id > 0 ? true : false;
    
    // 返回信息
    js_pop_msg_parent($msg,$b_reload);
    10、php頁面header跳轉(zhuǎn)
    //1.立即跳轉(zhuǎn)
    header("location:http://baidu.com/");
    exit();
    
    // 2.幾秒后再跳轉(zhuǎn)
     header("refresh:3;url=http://baidu.com/");
     print("請(qǐng)求的內(nèi)容不存在...
    三秒后自動(dòng)跳轉(zhuǎn)。"); exit();
    11、數(shù)組與字符串相互轉(zhuǎn)換
    // 將數(shù)組轉(zhuǎn)為字符串
         function a2s($arr)
        {
            $str = "";
            foreach ($arr as $key => $value)
            {
                if (is_array($value))
                {
                    foreach ($value as $value2)
                    {
                        $str .= urlencode($key) . "[]=" . urlencode($value2) . "&";
                    }
                }
                else
                {
                    $str .= urlencode($key) . "=" . urlencode($value) . "&";
                }
            }
            return $str;
        }
    
    
    // 將字符串轉(zhuǎn)為數(shù)組
    function s2a($str)
        {
            $arr = array();
            parse_str($str, $arr);
            return $arr;
        }
    
    
    // 完整示例
    $arr = array("usr_id" => 2, "nickname" => "周榮發(fā)",   "uids" => array(6,234,34,67,7888,2355));
    $ret = a2s($arr);
    dump($ret );
    
    
    $str = "usr_id=2&nickname=%D6%DC%C8%D9%B7%A2&uids[]=6&uids[]=234&uids[]=34&uids[]=67&uids[]=7888&uids[]=2355&";
    $new_arr = s2a($str);
    dump($new_arr);
    
    
    12、生成指定長度隨機(jī)數(shù)
    function generate_code($length = 6)
     {
        return rand(pow(10,($length-1)), pow(10,$length)-1);
    }
    13、判斷手機(jī)號(hào)是否正確
     /**
       * 判斷手機(jī)號(hào)碼是否正確
       * @param $phone    手機(jī)號(hào)
       * @param $zone_num 區(qū)號(hào)
       */
      function  check_phone($phone, $zone_num = 86)
      {
        if(!is_numeric($phone) || !is_numeric($zone_num)) return false;
    
        if($zone_num === 86)
        {
          // 國內(nèi)號(hào)碼規(guī)則
          return preg_match("/^13[d]{9}$|^14[5,7]{1}d{8}$|^15[^4]{1}d{8}$|^17[0,6,7,8]{1}d{8}$|^18[d]{9}$/", $phone) ? true : false;
        }
        else
        {
          // 國際號(hào)碼,這里只做一個(gè)簡單的匹配
          return preg_match("/^[1-9]{1}d{7,15}$/", $phone) ? true : false;
        }
    
      }
    13、獲取對(duì)象的公共屬性
    publics($User);
    
    $ret = get_object_vars($User);
    print_r($data);
    
    14、頁面跳轉(zhuǎn)
    if(!function_exists("redirect"))
    {
        // 網(wǎng)頁跳轉(zhuǎn)
        function redirect($url)
        {
            header("Location:{$url}");
            exit();
        }
    }
    
    /**
     * 頁面信息跳轉(zhuǎn)
     *
     * @param  string  $url  跳轉(zhuǎn)地址
     * @param  string  $msg  消息內(nèi)容
     * @return void
     */
    function page_msg_location($url, $alert = null, $b_parent = false)
    {
        // 如果提示信息出現(xiàn)亂碼,需要加上編碼信息
       echo "";
      echo "";
        echo "";
        exit();
    }
    
    15、獲取某月的第一天和最后一天
    // php獲取當(dāng)月天數(shù)及當(dāng)月第一天及最后一天、上月第一天及最后一天實(shí)現(xiàn)方法
    1.獲取上個(gè)月第一天及最后一天.
       echo date("Y-m-01", strtotime("-1 month"));
       echo "
    "; echo date("Y-m-t", strtotime("-1 month")); echo "
    "; 2.獲取當(dāng)月第一天及最后一天. $BeginDate=date("Y-m-01", strtotime(date("Y-m-d"))); echo $BeginDate; echo "
    "; echo date("Y-m-d", strtotime("$BeginDate +1 month -1 day")); echo "
    "; 3.獲取當(dāng)天年份、月份、日及天數(shù). echo " 本月共有:".date("t")."天"; echo " 當(dāng)前年份".date("Y"); echo " 當(dāng)前月份".date("m"); echo " 當(dāng)前幾號(hào)".date("d"); echo "
    "; 4.使用函數(shù)及數(shù)組來獲取當(dāng)月第一天及最后一天,比較實(shí)用 function getthemonth($date) { $firstday = date("Y-m-01", strtotime($date)); $lastday = date("Y-m-d", strtotime("$firstday +1 month -1 day")); return array($firstday,$lastday); } $today = date("Y-m-d"); $day=getthemonth($today); echo "當(dāng)月的第一天: ".$day[0]." 當(dāng)月的最后一天: ".$day[1]; echo "
    "; 5.封裝了一個(gè)方法,開箱即用: $year = 2017; $month = 2; function get_month_first_and_last_day($year, $month) { if(empty($year) || empty($month)) { return array(); } $date = $year . "-" . $month; $begin_date = date("Y-m-01 00:00:00", strtotime($date)); $last_date = date("Y-m-d 23:59:59", strtotime("$begin_date +1 month -1 day")); return array("begin_date" => $begin_date, "last_date" => $last_date); } $ret = get_month_first_and_last_day($year, $month); print_r($ret); Array ( [begin_date] => 2017-02-01 00:00:00 [last_date] => 2017-02-28 23:59:59 )
    16、根據(jù)二維數(shù)組的數(shù)據(jù)字段名返回其對(duì)應(yīng)的值數(shù)組
    /**
     * 根據(jù)二維數(shù)組的數(shù)據(jù)字段名返回其對(duì)應(yīng)的值數(shù)組
     * 
     * @param  array    $rows         二維數(shù)組
     * @param  string   $field_name   字段名
     * @param  boolean  $b_off_empty  是否排除空值,默認(rèn):true
     * @return array
     */
    function array_values_by_field_name($rows, $field_name, $b_off_empty = false)
    {
      $ret = array();
      foreach($rows as $row)
      {
        if(isset($row[$field_name]))
        {
          if($b_off_empty)
          {
            if(!empty($row[$field_name]))
            {
              $ret[] = $row[$field_name];
            }
          }
          else
          {
            $ret[] = $row[$field_name];
          }
        }
      }
      return $ret;
    }
    17、頁面打印調(diào)試
    if(!function_exists("dump"))
    {
        /**
         * 打印數(shù)據(jù)
         * @param mixed $data (可以是字符串,數(shù)組,對(duì)象)
         * @param  boolean $is_exit 是否退出程序,默認(rèn)否
         */
        function dump($data, $is_exit = false)
        {
            echo "
    ";
            print_r($data);
            echo "
    "; if($is_exit) exit(); } } /** * Debug打印 * * @param string $title 顯示的標(biāo)題 * @param mixed $data 打印的數(shù)據(jù) * @param boolean $b_new_line 是否空一行,默認(rèn):true * @return void */ function debug_dump($title, $data, $b_new_line = true) { if(!empty($_GET["dump"])) { if(!empty($title)) dump($title); if(!empty($data)) dump($data); if($b_new_line) dump(); } }
    18、ASCII字符轉(zhuǎn)換
    $charCode = "A";   
    
    // ord 返回 "A" 的 ASCII值:
    $charCodeord = ord($charCode) + 1 ;   // ord($charCode) = 65
    $charCodeord = $charCodeord > 90 ? 0 : $charCodeord;   
    $charCode = chr($charCodeord);   // 66 => B
    
    echo $charCode; // 輸出 B
    19、生成唯一訂單號(hào)
    function get_order_sn()
    {
        $map = array(
            "0" => array("n" => 16),
            "1" => array("n" => 17),
            "2" => array("n" => 18),
            "3" => array("n" => 19),
            "4" => array("n" => 20),
            "5" => array("n" => 21),
            "6" => array("n" => 22),
            "7" => array("n" => 23),
            "8" => array("n" => 24),
            "9" => array("n" => 25)
        );
    
        $ymd = date("ymd", time());
    
        // 不允許超過20位
        while(1)
        {
            $rnd = rand(1, 99999999);
            $sn = $ymd.substr("00000000".$rnd, -8);
            $sn_arr = str_split($sn);
            $v_code = 103;
            foreach($sn_arr as $v)
            {
                $v_code += $v * $map[$v]["n"];
            }
    
            $v_code = $v_code % 103;
            $djbh = $sn . $v_code;
            if(strlen($djbh) <= 20)
            {
                break;
            }
        }
    
        return $djbh;
    }
    
    // 調(diào)用
    $new_order_sn = get_order_sn();  // 1801098694194299
    
    20、json_encode 中文不轉(zhuǎn)義 php5.3及以下解決辦法
    function json_encode($array)
    {
    if(version_compare(PHP_VERSION,"5.4.0","<")){
    $str = json_encode($array);
    $str = preg_replace_callback("#u([0-9a-f]{4})#i",function($matchs){
    return iconv("UCS-2BE", "UTF-8", pack("H4", $matchs[1]));
    },$str);
    return $str;
    }else{
    return json_encode($array, JSON_UNESCAPED_UNICODE);
    }
    }
    
    // 測(cè)試
    $data = array("name" => "劉德華", "age" => 25, "song_name" => "Always love you ");
    
    $ret = json_encode($data);
    

    文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

    轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/22145.html

    相關(guān)文章

    • 【modernPHP專題(1)】php7常用特性整理

      摘要:它使得在生產(chǎn)環(huán)境中啟用斷言為零成本,并且提供當(dāng)斷言失敗時(shí)拋出特定異常的能力。錯(cuò)誤和異常改變了大多數(shù)錯(cuò)誤的報(bào)告方式。不同于傳統(tǒng)的錯(cuò)誤報(bào)告機(jī)制,現(xiàn)在大多數(shù)錯(cuò)誤被作為異常拋出。 PHP7性能 7最大的亮點(diǎn),應(yīng)該就是性能提高了兩倍,某些測(cè)試環(huán)境下甚至提高到三到五倍,具體可以了解以下鏈接: PHP7 VS HHVM (WordPress) HHVM vs PHP 7 – The Competit...

      Render 評(píng)論0 收藏0
    • 最全的Sublime text 常用插件整理

      摘要:常用插件記錄一些自己在使用時(shí)常用的一些插件安裝插件需要先安裝按調(diào)出復(fù)制代碼運(yùn)行一個(gè)的值轉(zhuǎn)值的自動(dòng)完成插件。配置參數(shù)參數(shù)配置文件轉(zhuǎn)的單位比例,默認(rèn)為。轉(zhuǎn)的小數(shù)部分的最大長度。啟用此插件的文件類型。當(dāng)您重溫代碼時(shí)候非常有用。 Sublime text 常用插件 記錄一些自己在使用sublime時(shí)常用的一些插件 cssrem 、SublimeServer 、 FileHeader 、Omni...

      goji 評(píng)論0 收藏0
    • PHP正則表達(dá)式規(guī)則及常用方法整理

      摘要:和均為非負(fù)整數(shù),其中。如果之前至少個(gè)獲取的子表達(dá)式,則為后向引用。 注:本文轉(zhuǎn)自 摘取天上星的博客 PHP常用正則表達(dá)式 ^d+$  //非負(fù)整數(shù)(正整數(shù)+ 0) ^[0-9]*[1-9][0-9]*$  //正整數(shù) ^((-d+)|(0+))$  //非正整數(shù)(負(fù)整數(shù)+ 0) ^-[0-9]*[1-9][0-9]*$  //負(fù)整數(shù) ^-?d+$    //整數(shù) ^d+(.d+)?$ ...

      UCloud 評(píng)論0 收藏0
    • 搞定PHP面試 - 正則表達(dá)式知識(shí)點(diǎn)整理

      摘要:是決定正則表達(dá)式匹配規(guī)則的主要部分。二分隔符分隔符的選擇當(dāng)使用函數(shù)的時(shí)候,正則表達(dá)式必須由分隔符閉合包裹。果分隔符經(jīng)常在正則表達(dá)式內(nèi)出現(xiàn),最好使用其他分隔符來提高可讀性。需要將一個(gè)字符串放入正則表達(dá)式中使用時(shí),可以用函數(shù)對(duì)其進(jìn)行轉(zhuǎn)義。 一、簡介 1. 什么是正則表達(dá)式 正則表達(dá)式(Regular Expression)就是用某種模式去匹配一類字符串的一種公式。正則表達(dá)式使用單個(gè)字符串來...

      AaronYuan 評(píng)論0 收藏0
    • PHP 數(shù)組函數(shù)分類和整理

      摘要:獲取元素?cái)?shù)量獲取數(shù)組元素總數(shù)獲取所有的鍵獲取數(shù)組所有鍵組成的數(shù)組。遍歷數(shù)組元素獲取數(shù)組當(dāng)前元素。數(shù)組指針前移一步。數(shù)組指針指向最后一個(gè)元素。其他數(shù)組操作反轉(zhuǎn)數(shù)組。隨機(jī)取出數(shù)組元素。對(duì)數(shù)組的所有值求和。 這幾天工作之余整理和分類了PHP 中常用的數(shù)組相關(guān)的函數(shù)。如有錯(cuò)誤和遺漏,請(qǐng)留言指正! 數(shù)組函數(shù)整理 創(chuàng)建數(shù)組函數(shù) array array ([ mixed $... ] ):創(chuàng)建數(shù)組...

      LiuZh 評(píng)論0 收藏0

    發(fā)表評(píng)論

    0條評(píng)論

    最新活動(dòng)
    閱讀需要支付1元查看
    <