標籤:

幾個簡單又實用的PHP函數

最近在開發項目中運用到的幾個簡單又實用的PHP方法,發現以下是幾個比較實用的函數。

有些方法是在google收藏的

本文首發於片段片段公眾號:代碼技巧

歡迎大家關注

/* * ************************* * 生成隨機字元串,可以自己擴展 //若想唯一,只需在開頭加上用戶id * $type可以為:upper(只生成大寫字母),lower(只生成小寫字母),number(只生成數字) * $len為長度,定義字元串長度 * mark 2017/8/15 * ************************** */function random($type, $len = 0) { $new = ; $string = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ; //數據池 if ($type == upper) { for ($i = 0; $i < $len; $i++) { $new .= $string[mt_rand(36, 61)]; } return $new; } if ($type == lower) { for ($i = 0; $i < $len; $i++) { $new .= $string[mt_rand(10, 35)]; } return $new; } if ($type == number) { for ($i = 0; $i < $len; $i++) { $new .= $string[mt_rand(0, 9)]; } return $new; }}//計算該月有幾天function getdaysInmonth($month, $year) { $days = ; if ($month == 1 || $month == 3 || $month == 5 || $month == 7 || $month == 8 || $month == 10 || $month == 12) $days = 31; else if ($month == 4 || $month == 6 || $month == 9 || $month == 11) $days = 30; else if ($month == 2) { if (isLeapyear($year)) { $days = 29; } else { $days = 28; } } return ($days);}//判斷是否為潤年function isLeapyear($year) { if ((($year % 4) == 0) && (($year % 100) != 0) || (($year % 400) == 0)) { return (true); } else { return (false); }}//生成訂單15位function auto_order($ord = 0) { //自動生成訂單號 傳入參數為0 或者1 0為本地 1為線上訂單 if ($ord == 0) { $str = 00 . time() . rand(1000, 9999); //00 本地訂單 } else { $str = 99 . time() . rand(1000, 9999); //11 線上訂單 } return $str;}//生成訂單15位function auto_new_order($ord = 0) { srand(time()); //自動生成訂單號 傳入參數為0 或者1 0為本地 1為線上訂單 if ($ord == 0) { $str = 00 . time() . mt_rand(100000,999999); //00 本地訂單 } else { $str = 11 . time() . mt_rand(100000,999999); //11 線上訂單 } return $str;}/** * 檢測是否為UTF8編碼 * @param $string 檢測字元串 * @return bool */function is_utf8($string) { return preg_match(%^(?: [x09x0Ax0Dx20-x7E] # ASCII | [xC2-xDF][x80-xBF] # non-overlong 2-byte | xE0[xA0-xBF][x80-xBF] # excluding overlongs | [xE1-xECxEExEF][x80-xBF]{2} # straight 3-byte | xED[x80-x9F][x80-xBF] # excluding surrogates | xF0[x90-xBF][x80-xBF]{2} # planes 1-3 | [xF1-xF3][x80-xBF]{3} # planes 4-15 | xF4[x80-x8F][x80-xBF]{2} # plane 16 )*$%xs, $string);}//處理json字元中的特殊字元function getJsonToArr($result,$return_array=true){ $tempArr = NULL; $result = preg_replace(/([^\])(":)(d{9,})(,")/i, ${1}${2}"${3}"${4}, $result); //taobao bug,number >2^32 $tempArr = json_decode($result, $return_array); if ($tempArr == NULL) { $patterns = array(/,+s*}/, /,+s*]/, /"s+|s+"/, /
|
| /,/\/,/ss+/); $replacements = array(}, ], ", ,, ); $result = preg_replace($patterns, $replacements, $result); $tempArr = json_decode($result, $return_array); } return $tempArr;}//非法字元過濾函數function has_unsafeword($str) { $regex = "//|~|!|@|#|\$|\%|^|&|*|(|)|\_|+|{|}|:|<|>|?|[|]|.|/|;||`|=|\||/"; return preg_replace($regex,"",$str); }//去空格,以及字元添加斜杠function _trim(&$value) { Return addslashes(trim($value));}/** * 將多維數組轉為一維數組 * @param array $arr * @return array */function ArrMd2Ud($arr) { #將數值第一元素作為容器,作地址賦值。 $ar_room = &$arr[key($arr)]; #第一容器不是數組進去轉呀 if (!is_array($ar_room)) { #轉為成數組 $ar_room = array($ar_room); } #指針下移 next($arr); #遍歷 while (list($k, $v) = each($arr)) { #是數組就遞歸深挖,不是就轉成數組 $v = is_array($v) ? call_user_func(__FUNCTION__, $v) : array($v); #遞歸合併 $ar_room = array_merge_recursive($ar_room, $v); #釋放當前下標的數組元素 unset($arr[$k]); } return $ar_room;} /** * 判斷是PC端還是wap端訪問 * @return type判斷手機移動設備訪問 */ function isMobile() { // 如果有HTTP_X_WAP_PROFILE則一定是移動設備 if (isset ($_SERVER[HTTP_X_WAP_PROFILE])) { return true; } // 如果via信息含有wap則一定是移動設備,部分服務商會屏蔽該信息 if (isset ($_SERVER[HTTP_VIA])) { // 找不到為flase,否則為true return stristr($_SERVER[HTTP_VIA], "wap") ? true : false; } // 腦殘法,判斷手機發送的客戶端標誌,兼容性有待提高 if (isset ($_SERVER[HTTP_USER_AGENT])) { $clientkeywords = array (nokia, sony, ericsson, mot, samsung, htc, sgh, lg, sharp, sie-, philips, panasonic, alcatel, lenovo, iphone, ipod, blackberry, meizu, android, netfront, symbian, ucweb, windowsce, palm, operamini, operamobi, openwave, nexusone, cldc, midp, wap, mobile ); // 從HTTP_USER_AGENT中查找手機瀏覽器的關鍵字 if (preg_match("/(" . implode(|, $clientkeywords) . ")/i", strtolower($_SERVER[HTTP_USER_AGENT]))) { return true; } } // 協議法,因為有可能不準確,放到最後判斷 if (isset ($_SERVER[HTTP_ACCEPT])) { // 如果只支持wml並且不支持html那一定是移動設備 // 如果支持wml和html但是wml在html之前則是移動設備 if ((strpos($_SERVER[HTTP_ACCEPT], vnd.wap.wml) !== false) && (strpos($_SERVER[HTTP_ACCEPT], text/html) === false || (strpos($_SERVER[HTTP_ACCEPT], vnd.wap.wml) < strpos($_SERVER[HTTP_ACCEPT], text/html)))) { return true; } } return false; } //判斷是否為安卓手機 public function isAndroid() { if(isset($_SERVER[HTTP_USER_AGENT])){ $agent = strtolower($_SERVER[HTTP_USER_AGENT]); if(strpos($agent,android) !== false) return true; } return false; } //判斷是否為iphone或者ipad public function isIos() { if(isset($_SERVER[HTTP_USER_AGENT])){ $agent = strtolower($_SERVER[HTTP_USER_AGENT]); if(strpos($agent, iphone)||strpos($agent, ipad)) return true; } return false; } //判斷是否為微信內置瀏覽器打開 public function isWechet() { if(isset($_SERVER[HTTP_USER_AGENT]) && strpos($_SERVER[HTTP_USER_AGENT], MicroMessenger) !== false){ return true; } return false; } //整合到一起,判斷當前設備,1:安卓;2:IOS;3:微信;0:未知 public function isDevice() { if($_SERVER[HTTP_USER_AGENT]){ $agent = strtolower($_SERVER[HTTP_USER_AGENT]); if(strpos($agent, micromessenger) !== false) return 3; elseif(strpos($agent, iphone)||strpos($agent, ipad)) return 2; else return 1; } return 0; } /** * 日期轉換成幾分鐘前 */ public function formatTime($date) { $timer = strtotime($date); $diff = $_SERVER[REQUEST_TIME] - $timer; $day = floor($diff / 86400); $free = $diff % 86400; if($day > 0) { if(15 < $day && $day <30){ return "半個月前"; }elseif(30 <= $day && $day <90){ return "1個月前"; }elseif(90 <= $day && $day <187){ return "3個月前"; }elseif(187 <= $day && $day <365){ return "半年前"; }elseif(365 <= $day){ return "1年前"; }else{ return $day."天前"; } }else{ if($free>0){ $hour = floor($free / 3600); $free = $free % 3600; if($hour>0){ return $hour."小時前"; }else{ if($free>0){ $min = floor($free / 60); $free = $free % 60; if($min>0){ return $min."分鐘前"; }else{ if($free>0){ return $free."秒前"; }else{ return 剛剛; } } }else{ return 剛剛; } } }else{ return 剛剛; } } } /** * 截取長度 */ public function getSubString($rawString,$length=100,$etc = ...,$isStripTag=true){ $rawString = str_replace(_baidu_page_break_tag_, , $rawString); $result = ; if($isStripTag) $string = html_entity_decode(trim(strip_tags($rawString)), ENT_QUOTES, UTF-8); else $string = trim($rawString); $strlen = strlen($string); for ($i = 0; (($i < $strlen) && ($length > 0)); $i++){ if ($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, 0, STR_PAD_LEFT), 0)) { if ($length < 1.0){ break; } $result .= substr($string, $i, $number); $length -= 1.0; $i += $number - 1; }else{ $result .= substr($string, $i, 1); $length -= 0.5; } } if($isStripTag) $result = htmlspecialchars($result, ENT_QUOTES, UTF-8); if ($i < $strlen){ $result .= $etc; } return $result; } /** * utf-8和gb2312自動轉化 * @param unknown $string * @param string $outEncoding * @return unknown|string */ function safeEncoding($string,$outEncoding = UTF-8) { $encoding = "UTF-8"; for($i = 0; $i < strlen ( $string ); $i ++) { if (ord ( $string {$i} ) < 128) continue; if ((ord ( $string {$i} ) & 224) == 224) { // 第一個位元組判斷通過 $char = $string {++ $i}; if ((ord ( $char ) & 128) == 128) { // 第二個位元組判斷通過 $char = $string {++ $i}; if ((ord ( $char ) & 128) == 128) { $encoding = "UTF-8"; break; } } } if ((ord ( $string {$i} ) & 192) == 192) { // 第一個位元組判斷通過 $char = $string {++ $i}; if ((ord ( $char ) & 128) == 128) { // 第二個位元組判斷通過 $encoding = "GB2312"; break; } } } if (strtoupper ( $encoding ) == strtoupper ( $outEncoding )) return $string; else return @iconv ( $encoding, $outEncoding, $string ); } /** *對內容中的關鍵詞添加鏈接 *只處理第一次出現的關鍵詞,對已有鏈接的關鍵不會再加鏈接,支持中英文 *$content:string 原字元串 *$keyword:string 關鍵詞 *$link:string,鏈接 */ function yang_keyword_link($content,$keyword,$link){ //排除圖片中的關鍵詞 $content = preg_replace( |(<img[^>]*?)(.$keyword.)([^>]*?>)|U, $1%&&&&&%$3, $content); $regEx = /(?!((<.*?)|(<a.*?)))(.$keyword.)(?!(([^<>]*?)>)|([^>]*?</a>))/si; $url=<a href=".$link." target="_blank" class="content_guanjianci">.$keyword.</a>; $content = preg_replace($regEx,$url,$content,1); //還原圖片中的關鍵詞 $content=str_replace(%&&&&&%,$keyword,$content); return $content; }usleep() 函數延遲代碼執行若干微秒。unpack() 函數從二進位字元串對數據進行解包。uniqid() 函數基於以微秒計的當前時間,生成一個唯一的 ID。time_sleep_until() 函數延遲代碼執行直到指定的時間。time_nanosleep() 函數延遲代碼執行若干秒和納秒。sleep() 函數延遲代碼執行若干秒。show_source() 函數對文件進行語法高亮顯示。strip_whitespace() 函數返回已刪除 PHP 注釋以及空白字元的源代碼文件。pack() 函數把數據裝入一個二進位字元串。ignore_user_abort() 函數設置與客戶機斷開是否會終止腳本的執行。highlight_string() 函數對字元串進行語法高亮顯示。highlight_file() 函數對文件進行語法高亮顯示。get_browser() 函數返回用戶瀏覽器的性能。exit() 函數輸出一條消息,並退出當前腳本。eval() 函數把字元串按照 PHP 代碼來計算。die() 函數輸出一條消息,並退出當前腳本。defined() 函數檢查某常量是否存在。define() 函數定義一個常量。constant() 函數返回常量的值。connection_status() 函數返回當前的連接狀態。connection_aborted() 函數檢查是否斷開客戶機。zip_read() 函數讀取打開的 zip 檔案中的下一個文件。zip_open() 函數打開 ZIP 文件以供讀取。zip_entry_read() 函數從打開的 zip 檔案項目中獲取內容。zip_entry_open() 函數打開一個 ZIP 檔案項目以供讀取。zip_entry_name() 函數返回 zip 檔案項目的名稱。zip_entry_filesize() 函數返回 zip 檔案項目的原始大小(在壓縮之前)。zip_entry_compressionmethod() 函數返回 zip 檔案項目的壓縮方法。zip_entry_compressedsize() 函數返回 zip 檔案項目的壓縮文件尺寸。zip_entry_close() 函數關閉由 zip_entry_open() 函數打開的 zip 檔案文件。zip_close() 函數關閉由 zip_open() 函數打開的 zip 檔案文件。xml_set_unparsed_entity_decl_handler() 函數規定在遇到無法解析的實體名稱(NDATA)聲明時被調用的函數。xml_set_processing_instruction_handler() 函數規定當解析器在 xml 文檔中找到處理指令時所調用的函數。xml_set_object() 函數允許在對象中使用 xml 解析器。xml_set_notation_decl_handler() 函數規定當解析器在 xml 文檔中找到符號聲明時被調用的函數。xml_set_external_entity_ref_handler() 函數規定當解析器在 xml 文檔中找到外部實體時被調用的函數。xml_set_element_handler() 函數建立起始和終止元素處理器。xml_set_default_handler() 函數為 xml 解析器建立默認的數據處理器。xml_set_character_data_handler() 函數建立字元數據處理器。xml_parser_set_option() 函數為 xml 解析器進行選項設置。xml_parser_get_option() 函數從 xml 解析器獲取選項設置信息。xml_parser_free() 函數釋放 xml 解析器。xml_parser_create() 函數創建 xml 解析器。xml_parser_create_ns() 函數創建帶有命名空間支持的 xml 解析器。xml_parse_into_struct() 函數把 xml 數據解析到數組中。xml_parse() 函數解析 xml 文檔。xml_get_error_code() 函數獲取 xml 解析器錯誤代碼。xml_get_current_line_number() 函數獲取 xml 解析器的當前行號。xml_get_current_column_number() 函數獲取 xml 解析器的當前列號。xml_get_current_byte_index() 函數獲取 xml 解析器的當前位元組索引。xml_error_string() 函數獲取 xml 解析器的錯誤描述。utf8_encode() 函數把 ISO-8859-1 字元串編碼為 UTF-8。utf8_decode() 函數把 UTF-8 字元串解碼為 ISO-8859-1。wordwrap() 函數按照指定長度對字元串進行折行處理。vsprintf() 函數把格式化字元串寫入變數中。vprintf() 函數輸出格式化的字元串。vfprintf() 函數把格式化的字元串寫到指定的輸出流。ucwords() 函數把字元串中每個單詞的首字元轉換為大寫。ucfirst() 函數把字元串中的首字元轉換為大寫。trim() 函數從字元串的兩端刪除空白字元和其他預定義字元。substr_replace() 函數把字元串的一部分替換為另一個字元串。substr_count() 函數計運算元串在字元串中出現的次數。substr_compare() 函數從指定的開始長度比較兩個字元串。substr() 函數返回字元串的一部分。strtr() 函數轉換字元串中特定的字元。strtoupper() 函數把字元串轉換為大寫。strtolower() 函數把字元串轉換為小寫。strtok() 函數把字元串分割為更小的字元串。strstr() 函數搜索一個字元串在另一個字元串中的第一次出現。strspn() 函數返回在字元串中包含的特定字元的數目。strrpos() 函數查找字元串在另一個字元串中最後一次出現的位置。strripos() 函數查找字元串在另一個字元串中最後一次出現的位置。strrev() 函數反轉字元串。strrchr() 函數查找字元串在另一個字元串中最後一次出現的位置,並返回從該位置到字元串結尾的所有字元。strpos() 函數返回字元串在另一個字元串中第一次出現的位置。strpbrk() 函數在字元串中搜索指定字元中的任意一個。strncmp() 函數比較兩個字元串。strncasecmp() 函數比較兩個字元串。strnatcmp() 函數使用一種「自然」演算法來比較兩個字元串。strnatcasecmp() 函數使用一種「自然」演算法來比較兩個字元串。strlen() 函數返回字元串的長度。stristr() 函數查找字元串在另一個字元串中第一次出現的位置。stripos() 函數返回字元串在另一個字元串中第一次出現的位置。stripslashes() 函數刪除由 addslashes() 函數添加的反斜杠。stripcslashes() 函數刪除由 addcslashes() 函數添加的反斜杠。strip_tags() 函數剝去 HTML、xml 以及 PHP 的標籤。strcspn() 函數返回在找到任何指定的字元之前,在字元串查找的字元數。strcoll() 函數比較兩個字元串。strcmp() 函數比較兩個字元串。strchr() 函數搜索一個字元串在另一個字元串中的第一次出現。strcasecmp() 函數比較兩個字元串。str_word_count() 函數計算字元串中的單詞數。str_split() 函數把字元串分割到數組中。str_shuffle() 函數隨機地打亂字元串中的所有字元。str_rot13() 函數對字元串執行 ROT13 編碼。str_replace() 函數使用一個字元串替換字元串中的另一些字元。str_repeat() 函數把字元串重複指定的次數。str_pad() 函數把字元串填充為指定的長度。str_ireplace() 函數使用一個字元串替換字元串中的另一些字元。sscanf() 函數根據指定的格式解析來自一個字元串的輸入。sprintf() 函數把格式化的字元串寫寫入一個變數中。soundex() 函數計算字元串的 soundex 鍵。similar_text() 函數計算兩個字元串的匹配字元的數目。sha1_file() 函數計算文件的 SHA-1 散列。sha1() 函數計算字元串的 SHA-1 散列。setlocale() 函數設置地區信息(地域信息)。rtrim() P rtrim() 函數 PHP String 函數quotemeta() 函數在字元串中某些預定義的字元前添加反斜杠。quoted_printable_decode() 函數對經過 quoted-printable 編碼後的字元串進行解碼,返回 8 位的字元串。printf() 函數輸出格式化的字元串。print() 函數輸出一個或多個字元串。parse_str() 函數把查詢字元串解析到變數中。ord() 函數返回字元串第一個字元的 ASCII 值。number_format() 函數通過千位分組來格式化數字。nl2br() 函數在字元串中的每個新行 (
) 之前插入 HTML 換行符 (<br />)。nl_langinfo() 函數返回指定的本地信息。money_format() 函數把字元串格式化為貨幣字元串。metaphone() 函數計算字元串的 metaphone 鍵。md5_file() 函數計算文件的 MD5 散列。md5() 函數計算字元串的 MD5 散列。ltrim() 函數從字元串左側刪除空格或其他預定義字元。localeconv() 函數返回包含本地數字及貨幣信息格式的數組。levenshtein() 函數返回兩個字元串之間的 Levenshtein 距離。join() 函數把數組元素組合為一個字元串。implode() 函數把數組元素組合為一個字元串。htmlspecialchars() 函數把一些預定義的字元轉換為 HTML 實體。html_entity_decode() chars_decode() 函數PHP String 函數htmlentities() 函數把字元轉換為 HTML 實體。html_entity_decode() 函數把 HTML 實體轉換為字元。hebrevc() 函數把希伯來文本從右至左的流轉換為左至右的流。它也會把新行 (
) 轉換為 <br />。hebrev() 函數把希伯來文本從右至左的流轉換為左至右的流。get_html_translation_table() 函數返回被 htmlentities() 和 htmlspecialchars() 函數使用的翻譯表。fprintf() 函數把格式化的字元串寫到指定的輸出流(例如:文件或資料庫)。explode() 函數把字元串分割為數組。echo() 函數輸出一個或多個字元串。crypt() 函數返回使用 DES、Blowfish 或 MD5 加密的字元串。crc32() 函數計算一個字元串的 crc32 多項式。count_chars() 函數返回字元串所用字元的信息。convert_uuencode() 函數使用 uuencode 演算法對字元串進行編碼。convert_uudecode() 函數對 uuencode 編碼的字元串進行解碼。convert_cyr_string() 函數把字元由一種 Cyrillic 字元轉換成另一種。chunk_split() 函數把字元串分割為一連串更小的部分。chr() 函數從指定的 ASCII 值返回字元。chop() 函數從字元串的末端開始刪除空白字元或其他預定義字元。bin2hex() 函數把 ASCII 字元的字元串轉換為十六進位值。addslashes() 函數在指定的預定義字元前添加反斜杠。addcslashes() 函數在指定的字元前添加反斜杠。xpath() 函數運行對 xml 文檔的 XPath 查詢。simplexml_load_string() 函數把 xml 字元串載入對象中。simplexml_load_file() 函數把 xml 文檔載入對象中。simplexml_import_dom() 函數把 DOM 節點轉換為 SimplexmlElement 對象。registerXPathNamespace() 函數為下一次 XPath 查詢創建命名空間語境。getNamespace() 函數獲取在 xml 文檔中使用的命名空間。getName() 函數從 SimplexmlElement 對象獲取 xml 元素的名稱。getDocNamespaces() 函數從 SimplexmlElement 對象返回在 xml 文檔中聲明的命名空間。children() 函數獲取指定節點的子節點。attributes() 函數獲取 Simplexml 元素的屬性。asxml() 函數以字元串的形式從 SimplexmlElement 對象返回 xml 文檔。addChild() 函數向指定的 xml 節點添加一個子節點。addAttribute() 函數給 Simplexml 元素添加一個屬性。__construct() 函數創建一個新的 SimplexmlElement 對象。mysql_unbuffered_query() 函數向 MySQL 發送一條 SQL 查詢(不獲取 / 緩存結果)。mysql_thread_id() 函數返回當前線程的 ID。mysql_stat() 函數返回 MySQL 伺服器的當前系統狀態。mysql_select_db() 函數設置活動的 MySQL 資料庫。mysql_result() 函數返回結果集中一個欄位的值。mysql_real_escape_string() 函數轉義 SQL 語句中使用的字元串中的特殊字元。mysql_query() 函數執行一條 MySQL 查詢。mysql_ping() 函數 Ping 一個伺服器連接,如果沒有連接則重新連接。mysql_pconnect() 函數打開一個到 MySQL 伺服器的持久連接。mysql_num_rows() 函數返回結果集中行的數目。mysql_num_fields() 函數返回結果集中欄位的數。mysql_list_processes() 函數列出 MySQL 進程。mysql_list_dbs() 函數列出 MySQL 伺服器中所有的資料庫。mysql_insert_id() 函數返回上一步 INSERT 操作產生的 ID。mysql_info() 函數返回最近一條查詢的信息。mysql_get_server_info() 函數返回 MySQL 伺服器的信息。mysql_get_proto_info() 函數返回 MySQL 協議的信息。mysql_get_host_info() 函數返回 MySQL 主機的信息。mysql_get_client_info() 函數返回 MySQL 客戶端信息。mysql_free_result() 函數釋放結果內存。mysql_field_type() 函數返回結果集中指定欄位的類型。mysql_field_table() 函數返回指定欄位所在的表名。mysql_field_seek() 函數將結果集中的指針設定為指定的欄位偏移量。mysql_field_name() 函數取得結果中指定欄位的欄位名。mysql_field_len() 函數返回指定欄位的長度。mysql_field_flags() 函數從結果中取得和指定欄位關聯的標誌。mysql_fetch_row() 函數從結果集中取得一行作為數字數組。mysql_fetch_object() 函數從結果集(記錄集)中取得一行作為對象。mysql_fetch_lengths() 函數取得一行中每個欄位的內容的長度。mysql_fetch_field() 函數從結果集中取得列信息並作為對象返回。mysql_fetch_assoc() 函數從結果集中取得一行作為關聯數組。mysql_fetch_array() 函數從結果集中取得一行作為關聯數組,或數字數組,或二者兼有mysql_error() 函數返回上一個 MySQL 操作產生的文本錯誤信息。mysql_errno() 函數返回上一個 MySQL 操作中的錯誤信息的數字編碼。mysql_db_name() 函數取得 mysql_list_dbs() 調用所返回的資料庫名。mysql_data_seek() 函數移動內部結果的指針。mysql_connect() 函數打開非持久的 MySQL 連接。mysql_close() 函數關閉非持久的 MySQL 連接。mysql_client_encoding() 函數返回當前連接的字符集的名稱。mysql_affected_rows() 函數返回前一次 MySQL 操作所影響的記錄行數。tanh() 函數返回雙曲正切。tan() 函數返回正切。srand() 函數播下隨機數發生器種子。sqrt() 函數返回一個數的平方根。sinh() 函數返回一個數的雙曲正弦。sin() 函數返回一個數的正弦。round() 函數對浮點數進行四捨五入。rand() 函數返回隨機整數。rad2deg() 函數把弧度數轉換為角度數。pow() 函數返回 x 的 y 次方。pi() 函數返回圓周率的值。octdec() 函數把八進位轉換為十進位。mt_srand() 播種 Mersenne Twister 隨機數生成器。mt_rand() 使用 Mersenne Twister 演算法返回隨機整數。mt_getrandmax() 顯示隨機數的最大可能值。min() 返回最小值。max() 返回最大值。log1p() 以返回 log(1 + x),甚至當 x 的值接近零也能計算出準確結果。log10() 以 10 為底的對數。log() 返回自然對數。lcg_value() 組合線性同餘發生器。is_nan() 判斷是否為合法數值。is_infinite() 判斷是否為無限值。is_finite() 函數判斷是否為有限值。hypot() 函數計算一直角三角形的斜邊長度。hexdec() 函數把十六進位轉換為十進位。fmod() 函數顯示隨機數最大的可能值。fmod() 函數返回除法的浮點數餘數。floor() 函數向下舍入為最接近的整數。expm1() 函數返回 exp(x) - 1,甚至當 number 的值接近零也能計算出準確結果。exp() 函數計算 e 的指數。deg2rad() 函數將角度轉換為弧度。decoct() 函數把十進位轉換為八進位。dechex() 函數把十進位轉換為十六進位。decbin() 函數把十進位轉換為二進位。cosh() 函數返回一個數的雙曲餘弦。cos() 函數返回一個數的餘弦。ceil() 函數向上舍入為最接近的整數。bindec() 函數把二進位轉換為十進位。base_convert() 函數在任意進位之間轉換數字。atanh() 函數返回一個角度的反雙曲正切。atan() 和 atan2() 和 atan2() 函數PHP Math 函數atan() 和 atan2() 和 atan2() 函數PHP Math 函數asinh() 函數返回一個數的反雙曲正弦。asin() 函數返回不同數值的反正弦,返回的結果是介於 -PI/2 與 PI/2 之間的弧度值。acosh() 函數返回一個數的反雙曲餘弦。acos() 函數返回一個數的反餘弦。abs() 函數返回一個數的絕對值。mail() 函數允許您從腳本中直接發送電子郵件。libxml_use_internal_errors() 函數禁用標準的 libxml 錯誤,並啟用用戶錯誤處理。libxml_get_last_error() 函數從 libxml 錯誤緩衝中獲取最後一個錯誤。libxml_get_errors() 函數從 libxml 錯誤緩衝中獲取錯誤。libxml_clear_errors() 函數清空 libxml 錯誤緩衝。setrawcookie() 函數不對 cookie 值進行 URL 編碼,發送一個 HTTP cookie。setcookie() 函數向客戶端發送一個 HTTP cookie。headers_sent() 函數檢查 HTTP 報頭是否發送/已發送到何處。headers_list() 函數返回已發送的(或待發送的)響應頭部的一個列表。header() 函數向客戶端發送原始的 HTTP 報頭。ftp_systype() 函數返回遠程 FTP 伺服器的系統類型標識符。ftp_ssl_connect() 函數打開一個安全的 SSL-FTP 連接。ftp_size() 函數返回指定文件的大小。ftp_site() 函數向伺服器發送 SITE 命令。ftp_set_option() 函數設置各種 FTP 運行時選項。ftp_rmdir() 函數刪除一個目錄。ftp_rename() 函數更改 FTP 伺服器上的文件或目錄名。ftp_rawlist() 函數返回指定目錄中文件的詳細列表。ftp_raw() 函數向 FTP 伺服器發送一個 raw 命令。ftp_quit() 函數關閉 FTP 連接。ftp_pwd() 函數返回當前目錄名。ftp_put() 函數把文件上傳到伺服器。ftp_pasv() 函數把被動模式設置為打開或關閉。ftp_nlist() 函數返回指定目錄的文件列表。ftp_nb_put() 函數把文件上傳到伺服器 (non-blocking)。ftp_nb_get() 函數從 FTP 伺服器上獲取文件並寫入本地文件 (non-blocking)。ftp_nb_fput() 函數上傳一個已打開的文件,並在 FTP 伺服器上把它保存為文件 (non-blocking)。ftp_nb_fget() 函數從 FTP 伺服器上下載一個文件並保存到本地已經打開的一個文件中 (non-blocking)。ftp_nb_continue() 函數連續獲取 / 發送文件。ftp_mkdir() 函數在 FTP 伺服器上建立新目錄。ftp_mdtm() 函數返回指定文件的最後修改時間。ftp_login() 函數登錄 FTP 伺服器。ftp_get() 函數從 FTP 伺服器上下載一個文件。ftp_get_option() 函數返回當前 FTP 連接的各種不同的選項設置。ftp_fput() 函數上傳一個已經打開的文件到 FTP 伺服器。ftp_fget() 函數從 FTP 伺服器上下載一個文件並保存到本地一個已經打開的文件中。ftp_exec() 函數請求在 FTP 伺服器上執行一個程序或命令。ftp_delete() 函數刪除 FTP 伺服器上的一個文件。ftp_connect() 函數建立一個新的 FTP 連接。ftp_close() 函數關閉 FTP 連接。ftp_chmod() 函數設置 FTP 伺服器上指定文件的許可權。ftp_chdir() 函數改變 FTP 伺服器上的當前目錄。ftp_cdup() 函數把當前目錄改變為 FTP 伺服器上的父目錄。ftp_alloc() 函數為要上傳到 FTP 伺服器的文件分配空間。filter_var() 函數通過指定的過濾器過濾變數。filter_var_array() 函數獲取多項變數,並進行過濾。filter_list() 函數返回包含所有得到支持的過濾器的一個數組。filter_input_array() 函數從腳本外部獲取多項輸入,並進行過濾。filter_input() 函數從腳本外部獲取輸入,並進行過濾。filter_id() 函數返回指定過濾器的 ID 號。filter_has_var() 函數檢查是否存在指定輸入類型的變數。unlink() 函數刪除文件。umask() 函數改變當前的 umask。touch() 函數設置指定文件的訪問和修改時間。tmpfile() 函數以讀寫(w+)模式建立一個具有唯一文件名的臨時文件。tempnam() 函數創建一個具有唯一文件名的臨時文件。symlink() 函數創建符號連接。stat() 函數返回關於文件的信息。set_file_buffer() 函數設置打開文件的緩衝大小。rmdir() 函數刪除空的目錄。rewind() 函數將文件指針的位置倒迴文件的開頭。rename() 函數重命名文件或目錄。realpath() 函數返回絕對路徑。readlink() 函數返回符號連接指向的目標。readfile() 函數輸出一個文件。popen() 函數打開進程文件指針。pclose() 函數關閉由 popen() 打開的管道。pathinfo() 函數以數組的形式返迴文件路徑的信息。parse_ini_file() 函數解析一個配置文件,並以數組的形式返回其中的設置。move_uploaded_file() 函數將上傳的文件移動到新位置。mkdir() 函數創建目錄。lstat() 函數返回關於文件或符號連接的信息。linkinfo() 函數返回連接的信息。link() 函數建立一個硬連接。is_writeable() 函數判斷指定的文件是否可寫。is_writable() 函數判斷指定的文件是否可寫。is_uploaded_file() 函數判斷指定的文件是否是通過 HTTP POST 上傳的。is_readable() 函數判斷指定文件名是否可讀。is_link() 函數判斷指定文件名是否為一個符號連接。is_file() 函數檢查指定的文件名是否是正常的文件。is_executable() 函數檢查指定的文件是否可執行。is_dir() 函數檢查指定的文件是否是目錄。glob() 函數返回匹配指定模式的文件名或目錄。fwrite() 函數寫入文件(可安全用於二進位文件)。ftruncate() 函數把文件截斷到指定的長度。ftell() 函數在打開文件中的當前位置。fstat() 函數返回關於打開文件的信息。fseek() 函數在打開的文件中定位。fscanf() 函數根據指定的格式對來自打開的文件的輸入進行解析。fread() 函數讀取文件(可安全用於二進位文件)。fputs() 函數寫入文件(可安全用於二進位文件)。fputcsv() 函數將行格式化為 CSV 並寫入一個打開的文件。fpassthru() 函數輸出文件指針處的所有剩餘數據。fopen() 函數打開文件或者 URL。fnmatch() 函數根據指定的模式來匹配文件名或字元串。flock() 函數鎖定或釋放文件。filetype() 函數返回指定文件或目錄的類型。filesize() 函數返回指定文件的大小。fileperms() 函數返迴文件或目錄的許可權。fileowner() 函數返迴文件的所有者。filemtime() 函數返迴文件內容上次的修改時間。fileinode() 函數返迴文件的 inode 編號。filegroup() 函數返回指定文件的組 ID。filectime() 函數返回指定文件的上次 inode 修改時間。fileatime() 函數返回指定文件的上次訪問時間。file_put_contents() 函數把一個字元串寫入文件中。file_get_contents() 函數把整個文件讀入一個字元串中。file_exists() 函數檢查文件或目錄是否存在。file() 函數把整個文件讀入一個數組中。fgetss() 函數從打開的文件中讀取一行並過濾掉 HTML 和 PHP 標記。fgets() 函數從文件指針中讀取一行。fgetcsv() 函數從文件指針中讀入一行並解析 CSV 欄位。fgetc() 函數從文件指針中讀取一個字元。fflush() 函數將緩衝內容輸出到文件。feof() 函數檢測是否已到達文件末尾 (eof)。fclose() 函數關閉一個打開文件。diskfreespace() 函數返回目錄中的可用空間。該函數是 disk_free_space() 函數的別名。disk_total_space() 函數返回指定目錄的磁碟總大小。disk_free_space() 函數返回目錄中的可用空間dirname() 函數返迴路徑中的目錄部分。clearstatcache() 函數拷貝文件。clearstatcache() 函數清除文件狀態緩存。chown() 函數改變指定文件的所有者。chmod() 函數改變文件模式。chgrp() 函數改變文件所屬的組。basename() 函數返迴路徑中的文件名部分。set_exception_handler() handler() 函數PHP Error 和 Logging 函數set_exception_handler() 函數設置用戶自定義的異常處理函數。set_error_handler() 函數設置用戶自定義的錯誤處理函數。restore_exception_handler() 函數恢復之前的異常處理程序,該程序是由 set_exception_handler() 函數改變的。restore_error_handler() 函數恢復之前的錯誤處理程序,該程序是由 set_error_handler() 函數改變的。error_reporting() 設置 PHP 的報錯級別並返回當前級別。error_log() 函數向伺服器錯誤記錄、文件或遠程目標發送一個錯誤。error_get_last() 函數獲取最後發生的錯誤。debug_print_backtrace() 函數輸出 backtrace。debug_backtrace() cktrace() 函數PHP Error 和 Logging 函數scandir() 函數返回一個數組,其中包含指定路徑中的文件和目錄。rewinddir() 函數重置由 opendir() 打開的目錄句柄。readdir() 函數返回由 opendir() 打開的目錄句柄中的條目。opendir() 函數打開一個目錄句柄,可由 closedir(),readdir() 和 rewinddir() 使用。getcwd() 函數返回當前目錄。closedir() 函數關閉由 opendir() 函數打開的目錄句柄。dir() 函數打開一個目錄句柄,並返回一個對象。這個對象包含三個方法:read() , rewind() 以及 close()。chroot() 函數把當前進程的根目錄改變為指定的目錄。chdir() 函數把當前的目錄改變為指定的目錄。time() 函數返回當前時間的 Unix 時間戳。strtotime() 函數將任何英文文本的日期時間描述解析為 Unix 時間戳。strptime() 函數解析由 strftime() 生成的日期/時間。strftime() 函數根據區域設置格式化本地時間/日期。mktime() 函數返回一個日期的 Unix 時間戳。microtime() 函數返回當前 Unix 時間戳和微秒數。localtime() 函數返回本地時間(一個數組)。idate() 函數將本地時間/日期格式化為整數。gmstrftime() 函數根據本地區域設置格式化 GMT/UTC 時間/日期。gmmktime() 函數取得 GMT 日期的 UNIX 時間戳。gmdate() 函數格式化 GMT/UTC 日期/時間。gettimeofday() 函數返回一個包含當前時間信息的數組。getdate() 函數取得日期/時間信息。date() 函數格式化一個本地時間/日期。date_sunset() 函數返回指定的日期與地點的日落時間。date_sunrise() 函數返回指定的日期與地點的日出時間。date_default_timezone_set() 函數設置用在腳本中所有日期/時間函數的默認時區。date_default_timezone_get() 函數返回腳本中所有日期時間函數所使用的默認時區。checkdate() 函數驗證一個格里高里日期。UnixToJD() 函數把 Unix 時間戳轉換為儒略日計數。JulianToJD() 函數把儒略曆轉換為儒略日計數。JewishToJD() 函數把猶太曆法轉換為儒略日計數。JDToUnix() 函數把儒略日計數轉換為 Unix 時間戳。JDToGregorian() lian() 函數PHP Array 函數JDToGregorian() wish() 函數PHP Array 函數JDToGregorian() 函數把儒略日計數轉換為格利高里曆法。JDToFrench() 函數把儒略日計數轉換為法國共和國曆法。JDMonthName() 函數返回指定曆法的月份字元串。JDDayOfWeek() 函數返回日期在周幾。GregorianToJD() 函數將格利高里曆法轉換成為儒略日計數。FrenchToJD() 函數將法國共和曆法轉換成為儒略日計數。easter_days() 函數返回指定年份的復活節與 3 月 21 日之間的天數。easter_date() 函數返回指定年份的復活節午夜的 Unix 時間戳。cal_to_jd() 函數把指定的日期轉換為儒略日計數。cal_info() 函數返回一個數組,其中包含了關於給定曆法的信息。cal_from_jd() 函數把儒略日計數轉換為指定曆法的日期。cal_days_in_month() 函數針對指定的年份和日曆,返回一個月中的天數。usort() 函數使用用戶自定義的函數對數組排序。uksort() 函數使用用戶自定義的比較函數按照鍵名對數組排序,並保持索引關係。uasort() 函數使用用戶自定義的比較函數對數組排序,並保持索引關聯(不為元素分配新的鍵)。sort() 函數按升序對給定數組的值排序。sizeof() 函數計算數組中的單元數目或對象中的屬性個數。shuffle() 函數把數組中的元素按隨機順序重新排列。rsort() 函數對數組的元素按照鍵值進行逆向排序。與 arsort() 的功能基本相同。reset() 函數把數組的內部指針指向第一個元素,並返回這個元素的值。range() 函數創建並返回一個包含指定範圍的元素的數組。prev() HP prev() 函數PHP Array 函數pos() 函數是 current() 函數 的別名。它可返回數組中當前元素的值。next() 函數把指向當前元素的指針移動到下一個元素的位置,並返回當前元素的值。natsort() 函數用自然順序演算法對給定數組中的元素排序。natcasesort() 函數用不區分大小寫的自然順序演算法對給定數組中的元素排序。list() 函數用數組中的元素為一組變數賦值。ksort() 函數按照鍵名對數組排序,為數組值保留原來的鍵。krsort() 函數將數組按照鍵逆向排序,為數組值保留原來的鍵。key() 函數返回數組內部指針當前指向元素的鍵名。in_array() 函數在數組中搜索給定的值。extract() extract() 函數PHP Array 函數array_walk() 函數對數組中的每個元素應用回調函數。如果成功則返回 TRUE,否則返回 FALSE。array_values() 函數返回一個包含給定數組中所有鍵值的數組,但不保留鍵名。array_unshift() 函數在數組開頭插入一個或多個元素。array_unique() 函數移除數組中的重複的值,並返回結果數組。array_uintersect_assoc() 函數帶索引檢查計算數組的交集,用回調函數比較數據。array_uintersect() 函數計算數組的交集,用回調函數比較數據。array_udiff_uassoc() 函數返回 array1 數組中存在但其它數組中都不存在的部分。返回的數組中鍵名保持不變。array_udiff_assoc() 函數返回 array1 中存在但其它數組中都不存在的部分。array_udiff() 函數返回一個數組,該數組包括了所有在被比較數組中,但是不在任何其它參數數組中的值,鍵名保留不變。array_sum() 函數返回數組中所有值的總和。array_splice() 函數與 array_slice() 函數類似,選擇數組中的一系列元素,但不返回,而是刪除它們並用其它值代替。array_slice() 函數在數組中根據條件取出一段值,並返回。array_shift() 函數刪除數組中的第一個元素,並返回被刪除元素的值。array_search() 函數與 in_array() 一樣,在數組中查找一個鍵值。如果找到了該值,匹配元素的鍵名會被返回。如果沒找到,則返回 false。array_reverse() 函數將原數組中的元素順序翻轉,創建新的數組並返回。如果第二個參數指定為 true,則元素的鍵名保持不變,否則鍵名將丟失。array_reduce() 函數用回調函數迭代地將數組簡化為單一的值。如果指定第三個參數,則該參數將被當成是數組中的第一個值來處理,或者如果數組為空的話就作為最終返回值。array_rand() 函數從數組中隨機選出一個或多個元素,並返回。array_push() 函數向第一個參數的數組尾部添加一個或多個元素(入棧),然後返回新數組的長度。array_product() 函數計算並返回數組中所有值的乘積。array_pop() 函數刪除數組中的最後一個元素。array_pad() 函數向一個數組插入帶有指定值的指定數量的元素。array_multisort() 函數對多個數組或多維數組進行排序。array_merge_recursive() 函數與 array_merge() 函數 一樣,將一個或多個數組的元素的合併起來,一個數組中的值附加在前一個數組的後面。並返回作為結果的數組。array_merge() 函數把兩個或多個數組合併為一個數組。array_map() 函數返回用戶自定義函數作用後的數組。回調函數接受的參數數目應該和傳遞給 array_map() 函數的數組數目一致。array_keys() 函數返回包含數組中所有鍵名的一個新數組。array_key_exists() 函數判斷某個數組中是否存在指定的 key,如果該 key 存在,則返回 true,否則返回 false。array_intersect_ukey() 函數用回調函數比較鍵名來計算數組的交集。array_intersect_uassoc() 函數使用用戶自定義的回調函數計算數組的交集,用回調函數比較索引。array_intersect_key() 函數使用鍵名比較計算數組的交集。array_intersect_assoc() 函數返回兩個或多個數組的交集數組。array_intersect() 函數返回兩個或多個數組的交集數組。array_flip() 函數返回一個反轉後的數組,如果同一值出現了多次,則最後一個鍵名將作為它的值,所有其他的鍵名都將丟失。array_filter() 函數用回調函數過濾數組中的元素,如果自定義過濾函數返回 true,則被操作的數組的當前值就會被包含在返回的結果數組中, 並將結果組成一個新的數組。如果原數組是一個關聯數組,鍵名保持不變。array_fill() 函數用給定的值填充數組,返回的數組有 number 個元素,值為 value。返回的數組使用數字索引,從 start 位置開始並遞增。如果 number 為 0 或小於 0,就會出錯。array_diff_ukey() 返回一個數組,該數組包括了所有出現在 array1 中但是未出現在任何其它參數數組中的鍵名的值。注意關聯關係保留不變。與 array_diff() 不同的是,比較是根據鍵名而不是值來進行的。array_diff_uassoc() 函數使用用戶自定義的回調函數 (callback) 做索引檢查來計算兩個或多個數組的差集。返回一個數組,該數組包括了在 array1 中但是不在任何其他參數數組中的值。array_diff_key() 函數返回一個數組,該數組包括了所有在被比較的數組中,但是不在任何其他參數數組中的鍵。array_diff_assoc() 函數返回兩個數組的差集數組。該數組包括了所有在被比較的數組中,但是不在任何其他參數數組中的鍵和值。array_diff() 函數返回兩個數組的差集數組。該數組包括了所有在被比較的數組中,但是不在任何其他參數數組中的鍵值。array_count_values() 函數用於統計數組中所有值出現的次數。array_combine() 函數通過合併兩個數組來創建一個新數組,其中的一個數組是鍵名,另一個數組的值為鍵值。array_chunk() 函數把一個數組分割為新的數組塊。array_change_key_case() 函數將數組的所有的 KEY 都轉換為大寫或小寫。array() 創建數組,帶有鍵和值。如果在規定數組時省略了鍵,則生成一個整數鍵,這個 key 從 0 開始,然後以 1 進行遞增。PHP Array 函數end() 函數將數組內部指針指向最後一個元素,並返回該元素的值(如果成功)。each() 函數生成一個由數組當前內部指針所指向的元素的鍵名和鍵值組成的數組,並把內部指針向前移動。current() 函數返回數組中的當前元素(單元)。count() 函數計算數組中的單元數目或對象中的屬性個數。compact() 函數創建一個由參數所帶變數組成的數組。如果參數中存在數組,該數組中變數的值也會被獲取。asort() 函數對數組進行排序並保持索引關係。主要用於對那些單元順序很重要的結合數組進行排序。arsort() 函數對數組進行逆向排序並保持索引關係。主要用於對那些單元順序很重要的結合數組進行排序。array_walk_recursive() cursive() 函數

推薦閱讀:

如何編寫不可維護的php代碼?
大型的 PHP應用 ,通常使用什麼應用做 消息隊列 的?
Swoole到底是個什麼東西?
用 PHP 可以開發出豆瓣、知乎嗎?
Sublime Text 2如何讓ejs模板語法高亮?

TAG:PHP |