工作中常用的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??是否只獲取圖片地址,默認為true ?*?@return?array ?*???
/** * 根據(jù)過期時間判斷剩余的天數(shù) * @desc 如果為0,則表示活動已經(jīng)結(jié)束 * @param $expire_time 時間戳 * @return float|int */ function check_remaining_days($expire_time) { // 獲取當前時間 $cur_time = time(); $expire_time = (int)$expire_time; $diff_time = ($expire_time - $cur_time); $remaining_days_count = 0; if($diff_time > 0) { // 計算剩余的天數(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 編碼,默認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信息
/** * 錯誤信息提示,并退出程序 * @param string $msg 錯誤信息 */ 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("請求的內(nèi)容不存在...11、數(shù)組與字符串相互轉(zhuǎn)換
三秒后自動跳轉(zhuǎn)。"); exit();
// 將數(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、生成指定長度隨機數(shù)
function generate_code($length = 6) { return rand(pow(10,($length-1)), pow(10,$length)-1); }13、判斷手機號是否正確
/** * 判斷手機號碼是否正確 * @param $phone 手機號 * @param $zone_num 區(qū)號 */ function check_phone($phone, $zone_num = 86) { if(!is_numeric($phone) || !is_numeric($zone_num)) return false; if($zone_num === 86) { // 國內(nèi)號碼規(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 { // 國際號碼,這里只做一個簡單的匹配 return preg_match("/^[1-9]{1}d{7,15}$/", $phone) ? true : false; } }13、獲取對象的公共屬性
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獲取當月天數(shù)及當月第一天及最后一天、上月第一天及最后一天實現(xiàn)方法 1.獲取上個月第一天及最后一天. echo date("Y-m-01", strtotime("-1 month")); echo "16、根據(jù)二維數(shù)組的數(shù)據(jù)字段名返回其對應(yīng)的值數(shù)組
"; echo date("Y-m-t", strtotime("-1 month")); echo "
"; 2.獲取當月第一天及最后一天. $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.獲取當天年份、月份、日及天數(shù). echo " 本月共有:".date("t")."天"; echo " 當前年份".date("Y"); echo " 當前月份".date("m"); echo " 當前幾號".date("d"); echo "
"; 4.使用函數(shù)及數(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 "當月的第一天: ".$day[0]." 當月的最后一天: ".$day[1]; echo "
"; 5.封裝了一個方法,開箱即用: $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 )
/** * 根據(jù)二維數(shù)組的數(shù)據(jù)字段名返回其對應(yīng)的值數(shù)組 * * @param array $rows 二維數(shù)組 * @param string $field_name 字段名 * @param boolean $b_off_empty 是否排除空值,默認: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ù)組,對象) * @param boolean $is_exit 是否退出程序,默認否 */ function dump($data, $is_exit = false) { echo "18、ASCII字符轉(zhuǎn)換"; print_r($data); echo ""; if($is_exit) exit(); } } /** * Debug打印 * * @param string $title 顯示的標題 * @param mixed $data 打印的數(shù)據(jù) * @param boolean $b_new_line 是否空一行,默認: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(); } }
$charCode = "A"; // ord 返回 "A" 的 ASCII值: $charCodeord = ord($charCode) + 1 ; // ord($charCode) = 65 $charCodeord = $charCodeord > 90 ? 0 : $charCodeord; $charCode = chr($charCodeord); // 66 => B echo $charCode; // 輸出 B19、生成唯一訂單號
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(); // 180109869419429920、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); } } // 測試 $data = array("name" => "劉德華", "age" => 25, "song_name" => "Always love you "); $ret = json_encode($data);
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/22145.html
摘要:它使得在生產(chǎn)環(huán)境中啟用斷言為零成本,并且提供當斷言失敗時拋出特定異常的能力。錯誤和異常改變了大多數(shù)錯誤的報告方式。不同于傳統(tǒng)的錯誤報告機制,現(xiàn)在大多數(shù)錯誤被作為異常拋出。 PHP7性能 7最大的亮點,應(yīng)該就是性能提高了兩倍,某些測試環(huán)境下甚至提高到三到五倍,具體可以了解以下鏈接: PHP7 VS HHVM (WordPress) HHVM vs PHP 7 – The Competit...
摘要:常用插件記錄一些自己在使用時常用的一些插件安裝插件需要先安裝按調(diào)出復(fù)制代碼運行一個的值轉(zhuǎn)值的自動完成插件。配置參數(shù)參數(shù)配置文件轉(zhuǎn)的單位比例,默認為。轉(zhuǎn)的小數(shù)部分的最大長度。啟用此插件的文件類型。當您重溫代碼時候非常有用。 Sublime text 常用插件 記錄一些自己在使用sublime時常用的一些插件 cssrem 、SublimeServer 、 FileHeader 、Omni...
摘要:和均為非負整數(shù),其中。如果之前至少個獲取的子表達式,則為后向引用。 注:本文轉(zhuǎn)自 摘取天上星的博客 PHP常用正則表達式 ^d+$ //非負整數(shù)(正整數(shù)+ 0) ^[0-9]*[1-9][0-9]*$ //正整數(shù) ^((-d+)|(0+))$ //非正整數(shù)(負整數(shù)+ 0) ^-[0-9]*[1-9][0-9]*$ //負整數(shù) ^-?d+$ //整數(shù) ^d+(.d+)?$ ...
摘要:是決定正則表達式匹配規(guī)則的主要部分。二分隔符分隔符的選擇當使用函數(shù)的時候,正則表達式必須由分隔符閉合包裹。果分隔符經(jīng)常在正則表達式內(nèi)出現(xiàn),最好使用其他分隔符來提高可讀性。需要將一個字符串放入正則表達式中使用時,可以用函數(shù)對其進行轉(zhuǎn)義。 一、簡介 1. 什么是正則表達式 正則表達式(Regular Expression)就是用某種模式去匹配一類字符串的一種公式。正則表達式使用單個字符串來...
摘要:獲取元素數(shù)量獲取數(shù)組元素總數(shù)獲取所有的鍵獲取數(shù)組所有鍵組成的數(shù)組。遍歷數(shù)組元素獲取數(shù)組當前元素。數(shù)組指針前移一步。數(shù)組指針指向最后一個元素。其他數(shù)組操作反轉(zhuǎn)數(shù)組。隨機取出數(shù)組元素。對數(shù)組的所有值求和。 這幾天工作之余整理和分類了PHP 中常用的數(shù)組相關(guān)的函數(shù)。如有錯誤和遺漏,請留言指正! 數(shù)組函數(shù)整理 創(chuàng)建數(shù)組函數(shù) array array ([ mixed $... ] ):創(chuàng)建數(shù)組...
閱讀 3110·2021-11-10 11:36
閱讀 3312·2021-10-13 09:40
閱讀 6051·2021-09-26 09:46
閱讀 662·2019-08-30 15:55
閱讀 1409·2019-08-30 15:53
閱讀 1579·2019-08-29 13:55
閱讀 2997·2019-08-29 12:46
閱讀 3204·2019-08-29 12:34