PHP 內置函數大全


基本知識

1、引用
php語言中有引用的概念,相當於指針。如$a = &$b

      <?php
            $a = 1; $b = &$a; $b = "2$b"; echo "$a,$b" ?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2、運算符優先級
(new) > (++、–) > (*、/、%) > (+、-) > (&&)> (||) > (?:) > (==) > (and) > (xor) > (or)

WEB編程

1、_GET和_POST獲取表單數據
2、處理多選框時,要在html中定義成數組的形式,如<input name="hobby[]" type="checkbox" value="sport">

內置函數

數組內置函數

       (1) for、foreach循環輸出數組元素 for:按整數順序索引排列數組 foreach($array as $value) foreach($array as $key=>$value) (2) print_r() 查看數組結構,如果在輸出前輸出<pre>,頁面輸出的結果會更整潔 (3) count() 計算數組元素的個數 (4) array_chunk($array,$size,$preserve) chunk:塊,數組塊,組塊; 函數功能時對一個數組進行分割,$array,原數組;$size,分割的數組大小,大於0;$preserve,是否使用原索引。 (5) array_merge($array...) 數組合並,只接受array類型的參數,合並失敗,返回null;如果數組索引時數字索引,會從‘0’開始編號索引;如果時字符串索引,則會出現覆蓋的情況。 (6) current() 返回數組當前的元素 (7) prev() 返回當前元素的前一個元素,該方法會移動數組內部的指針,如果不存在前一個返回false (8) next() 返回當前元素的后一個元素,該方法可以移動數組內部的指針,如果不存在則返回false (9) end() 返回最后一個元素,該方法會移動數組內部的指針 (10) sort($array) 對數組進行排序 (11) rsort($array) 對數組逆序排列 (12) asort($array) 對數組元素進行排序,保持數組的原索引關系不變 (13) ksort($array) 對數組元素按索引名排序,保持原數組索引關系保持不變 (14) arsot() (15) krsort() (16) shuffle() 隨機打亂數組,刪除原來的索引 (17) array_reverse($array,$preserve) 將原數組按反序排序,返回排序后的數組,$preserve 是否保留索引,默認為false. (18) reset() 重置數組,將數組內部指針移動到第一個元素,並返回第一個元素。,如果數組為空,返回false (19) list(), 將數組元素賦值給變量,嚴格講,和array一樣,並不是函數,僅能用於數字索引的數組,且假定索引從0開始。 (20) 棧操作,array_push(array,mixed value)將一個或多個元素壓棧,返回數組中新的元素總數; array_pop(array),出棧,棧為空,返回null (21) 隊列操作,array_shift(array) 刪除第一個元素並返回; array_unshift(array,val1,val2,...),將參數按照順序加入隊列中 (22) array_change_key_case(array,CASE_LOWER/CASE_UPPER) 將字符串索引的轉換為大小寫,對數字索引不起作用 (23) 集合操作:交集,array_intersect(array,arr1...)求數組元素的交集,array_intersect_assoc()求數組鍵-值的交集;差集,array_diff(array,arr1...) 求數組的差集,array_diff_assoc(array,arr1...)求鍵-值的差集 intersect 交集;相交 diff (24) array_flip() 交換數組的鍵-值對,如果同一個值出現多次,則最后的索引會轉換成對應的值 (25) array_fill(int start,int num,mixed val) (26) array_count_values(array) 統計數組中元素的個數,返回一個數組,鍵時原數組的值,值為出現的次數 (27) array_key_exists(key,array)檢查索引是否存在於數組中 (28) array_keys(array,[,searchvalue][,strict]) 獲取所有的索引;array_values(),返回所有的元素,而不管是否重復 (29) array_map(callbackfunc,arr1,arr2,...),數組的個數與回調函數的參數相同 (30) array_filter(array,callbackfunc); 過濾數組中的元素,當回調函數返回true時,元素放到結果集中,鍵名保持不變。 (31) in_array(var,array) var是否在array中 (32) key(array) 返回當前元素的key
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

字符串內置函數

       (1) 分割合並 explode(separator,str[,limit]) 使用字符串separator分割字符串str,limit用於限制返回數組中最多有幾個元素;implode(bds,array),將數組合並成字符串,使用bds鏈接元素 (2) 比較和替換 strcmp(str1,str2) ;str_replace(search,replace,str),將str中search全部替換成replace,變形str_replace(searchArr,replaceArr,str),參數也可以是數組;substr_replace(string,replacement,start[,length]) 將string的start后的length長度(默認到結尾)的字符串替換為replacement,start和length可以為負數,表示從尾部開始,length為負數時表示倒數但是不包括倒數第length個。 (3) 輸出,print 嚴格的講,print是語言結構,而不是函數,與echo的不同是print返回值是1,而echo沒有返回值;echo可以打印多個string,而print只能打印一個string。 (4) 格式化輸出 sprintf(format,mixed args) ,類似於C 語言的格式化輸出,類似的函數printf ,在這里假如使用$進行補齊,需要使用"'$"這樣的寫法 (5) 獲取子串 substr(string,start,length) 從string的start位置開始截取length長度的子字符串;strstr(string,needle,flag) 查找string中needle第一次出現的位置,並返回之后的所有字符(包括本字符),若flag為true,則返回之前的所有字符(不包括本字符);strchr() 同strstr;strrchr(string,needle,flag) string中needle最后一次出現的位置,返回之后的所有字符;strpos(string,needle[,start]) needle在string中第一次出現的位置。 (6) 刪除首位兩端的多余字符,trim(),ltrim(),rtrim(),默認刪除兩端的空白字符,也可以自己指定。如trim(string,reStr) (7) 獲取字符串長度 strlen(string) ,mb_strlen(string,encode) (8) 大小寫轉換 strtolower strtoupper (9) 處理html標記的字符串 htmlentities(string) htmlspecialchars();html_entity_decode(string) 將html實體解析成字符串 (10) 重復生成字符串 str_repeat(string,num);str_pad(string,length,pad,pad_type) pad_type的值是常量,STR_PAD_LEFT,STR_PAD_RIGHT,STR_PAD_BOTH。使用pad在string的pad_type端補齊成長度為length的字符串。 (11) 散列值 md5() sha1() (12) str_split(string[,split_length]) 將string分割成長度為length的子字符串並返回一個數組;split(regex,string) 支持正則,根據regex分割字符串string
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

文件操作內置函數

      (1) opendir(path) 打開目錄,返回一個資源類型的數值 (2) closedir(path) 關閉目錄 (3) readdir(dir) 讀取文件夾,獲取文件夾下的文件名而不是文件路徑 (4) scandir(string dir) 返回文件夾中的文件名數組,失敗返回false,參數dir不是目錄返回false (5) getcwd() 獲取當前的工作目錄 (6) chdir() 改變當前的目錄 (7) fp=fopen(filename,mode) 打開文件,返回一個資源類型數據,失敗返回false (8) fclose(fp) 關閉文件,參數是fopen的返回值 (9) fgets(fp) 讀取一行,參數需要是一個文件句柄 (10) file(filename) 讀取整個文件,返回一個數組,每一個元素為文件的一行 (11) get_file_contents(filename) 將整個文件讀到一個字符串中;fread(fp,length) 讀取整個文件,可以安全讀取二進制文件,如果單純的想將一個文件的內容讀取到字符串,應該使用性能更好的file_get_contens(); (12) readfile() 讀入整個文件,並寫入輸出緩沖區,返回讀取的字節數 (13) fwrite(fp,content),返回寫入的字節數, (14) fputs(),與fwrite一樣 (15) file_put_contents(filename,data,mode),返回寫入的字節數,data可以是一維數組,mode的取值FILE_USE_INCLUDE_PATH,FILE_APPEND,LOCK_EX (16) fileowner(filename) 返回文件擁有者ID (17) filesize() 取得文件的大小 (18) filetype() 取得文件類型,返回值file,dir,link,block,unknown (19) is_dir(filename) is_file(filename) isreadable() iswriteable() (20) basename(filename[,suffix]) 取得路徑中的文件名部分,若suffix存在則返回的文件名不包括suffix,可以用於去除擴展名; dirname() 取得路徑中的目錄名部分 (21) file_exists(filename) 判斷文件是否存在 (22) mkdir(pathname,mode) 創建成功返回true,失敗返回false (23) rmdir(pathname) 目錄必須空目錄 (24) unlink(filename) 刪除文件 (25) copy(source,desc) 將source復制到desc,成功返回true (26) rename(oldname,newname) (27) fgetss(handle) 可以使用fopen打開url,此時fgetss可以過濾掉html標簽 (28) include() require() (29) filemtime() fileatime() filectime() 返回unix時間戳
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

時間日期內置函數

      (1) date(format[,timestamp]) (2) mktime(hour,minute,second,month,day,year) 省略的參數將以本地日期和時間代替。 (3) getdate([timestamp]) 
  • 1
  • 2
  • 3

URL處理內置函數

      (1) urlencode(str) 返回值字符串中所有的非字母和數字字符變成一個百分號(%) 和一個兩位的十六進制數,空格被轉換成+,-、_和.不做任何轉換 (2) urldecode(str) 
  • 1
  • 2

數學運算

      (1) abs(num) (2) ceil(num) (3) floor(num) (4) sqrt(num) (5) round(num,precision) 四舍五入成指定precision位數 (6) 進制之間的轉換 bin 二進制,dec 十進制, oct 八進制,hex 十六進制,十進制轉二進制 decbin(num) ,十進制轉八進制 decoct(num) ,其余類似,不存在二進制、八進制、十六進制之間的轉換,若要實現這些轉換,可以使用base_convert(num,from,to) 如 base_convert("A4",16,2);定義十六進制時不需要加0x34 (7) rand() mt_rand(min,max) 隨機數,其中mt_rand()可以生成指定范圍內的隨機數,默認時0~RAND_MAX
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

數據庫操作

      (1) 連接數據庫 conn = mysql_connect(host,username,password)
      (2) 關閉鏈接 mysql_close(conn);
      (3) 執行語句 mysql_query(sql) 僅對show,select,describe等語句返回一個資源標示,對於其他SQL語句,mysql_query() 在執行成功時返回TRUE,出錯時返回FALSE (4) 處理查詢結果集 mysql_affected_rows() 取得前一次mysql操作所影響的記錄行數,失敗返回-1 mysql_fetch_row($result) result是執行mysql_query()之后返回的資源標識,該函數從查詢結果集中返回一行數據。該函數返回值時一個數組,其中每一個元素對應一行結果記錄的字段值。依次調用該函數可以返回結果集中的下一行,如果沒有更多行,函數返回false。 mysql_fetch_array(result,type) 返回一行關聯數組,或普通數組,或二者兼有,type:MYSQL_ASSOC 返回關聯數組 MYSQL_NUM 普通數組 MYSQL_BOTH 二者兼有,通常使用該函數獲取各字段的值 mysql_fetch_assoc(result) 與mysql_fetch_array()類似,返回的時關聯數組 (5) 獲取字段信息 mysql_fetch_field(result[,field_offset]) 返回一個object對象,屬性包括包括name,table,not_null,primary_key等 (6) 選擇數據庫,mysql_select_db(databasename) 鏈接上數據庫之后,使用該函數選擇databasename數據庫 (7) 獲取結果集行數 mysql_num_rows(result) ,僅對select語句有效;要取得insert,update,delete執行影響的結果行數,需要使用mysql_affected_rows()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

正則表達式

      (1) int ereg(pattern,string[,&regs]) pattern 正則表達式,待匹配string,匹配結果放在regs中,其中regs[0] 存放匹配到的整個字符串,其余的1,2...依次存放合乎規則的字符串。省略regs,則只單純使用正則表達式作匹配,如果在string中找到pattern模式的匹配,那么該函數返回所匹配字符串的長度,如果沒有傳遞入可選參數regs或者所匹配的字符串長度為0,則返回1,如果沒有找到匹配或者出錯,返回false。 (2) int eregi(pattern,string,regs) 忽略大小寫 (3) split(pattern,string[,limit]) 利用正則表達式分割字符串 (4) sql_regcase(string) 返回string相匹配的正則表達式,這個正則表達式不區分大小寫 (5) ereg_replace(pattern,replacement,string) 替換匹配字符串,eregi_replace(pattern,replacement,string) 不區分大小寫 (6) 與perl兼容的正則表達式函數,perl正則表達式需要使用定界符(/),比如,"/<\/\w+>/"。函數:array preg_grep(pattern,input[,flag]) 類似ereg(),返回相匹配的元素,當flag=1時,返回數組中時不匹配元素; (7) int preg_match(pattern,subject,matches[,flag]); 類似ereg(),捕獲的匹配放到mathes中 (8) int preg_match_all(pattern,subject,matches[,flag]); 全局搜索,找到第一個匹配之后,會繼續搜索。搜索的結果存放在matches; (9) mixed preg_replace(pattern,replacement,subject[,limit]),其中公pattern,replacement可以是數組。 (10) array preg_split(pattern,subject[,limit[,flag]])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM