php 常用方法整理

基本知識

1、引用
php語言中有引用的概念褐筛,相當(dāng)于指針类少。如$a = &$b

  <?php
        $a = 1;
        $b = &$a;
        $b = "2$b";
        echo "$a,$b"
  ?>

2、運算符優(yōu)先級
(new) > (++渔扎、–) > (*硫狞、/、%) > (+、-) > (&&)> (||) > (?:) > (==) > (and) > (xor) > (or)

WEB編程

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

內(nèi)置函數(shù)

數(shù)組內(nèi)置函數(shù)

   (1) for定罢、foreach循環(huán)輸出數(shù)組元素
    for:按整數(shù)順序索引排列數(shù)組
    foreach($array as $value)
    foreach($array as $key=>$value)
   (2) print_r() 查看數(shù)組結(jié)構(gòu),如果在輸出前輸出<pre>,頁面輸出的結(jié)果會更整潔
   (3) count() 計算數(shù)組元素的個數(shù)
   (4) array_chunk($array,$size,$preserve) chunk:塊旁瘫,數(shù)組塊祖凫,組塊; 函數(shù)功能時對一個數(shù)組進行分割,$array,原數(shù)組酬凳;$size,分割的數(shù)組大小,大于0惠况;$preserve,是否使用原索引。
   (5) array_merge($array...) 數(shù)組合并宁仔,只接受array類型的參數(shù)稠屠,合并失敗,返回null翎苫;如果數(shù)組索引時數(shù)字索引权埠,會從‘0’開始編號索引;如果時字符串索引煎谍,則會出現(xiàn)覆蓋的情況攘蔽。
   (6) current() 返回數(shù)組當(dāng)前的元素
   (7) prev() 返回當(dāng)前元素的前一個元素,該方法會移動數(shù)組內(nèi)部的指針,如果不存在前一個返回false
   (8) next() 返回當(dāng)前元素的后一個元素呐粘,該方法可以移動數(shù)組內(nèi)部的指針,如果不存在則返回false
   (9) end() 返回最后一個元素满俗,該方法會移動數(shù)組內(nèi)部的指針
   (10) sort($array) 對數(shù)組進行排序
   (11) rsort($array)  對數(shù)組逆序排列
   (12) asort($array) 對數(shù)組元素進行排序,保持?jǐn)?shù)組的原索引關(guān)系不變
   (13) ksort($array) 對數(shù)組元素按索引名排序作岖,保持原數(shù)組索引關(guān)系保持不變
   (14) arsot()
   (15) krsort()
   (16) shuffle() 隨機打亂數(shù)組唆垃,刪除原來的索引
   (17) array_reverse($array,$preserve) 將原數(shù)組按反序排序,返回排序后的數(shù)組痘儡,$preserve 是否保留索引辕万,默認(rèn)為false.
   (18) reset() 重置數(shù)組,將數(shù)組內(nèi)部指針移動到第一個元素沉删,并返回第一個元素蓄坏。,如果數(shù)組為空丑念,返回false 
   (19) list(), 將數(shù)組元素賦值給變量涡戳,嚴(yán)格講,和array一樣脯倚,并不是函數(shù)渔彰,僅能用于數(shù)字索引的數(shù)組嵌屎,且假定索引從0開始。
   (20) 棧操作恍涂,array_push(array,mixed value)將一個或多個元素壓棧宝惰,返回數(shù)組中新的元素總數(shù); array_pop(array),出棧再沧,棧為空尼夺,返回null
   (21) 隊列操作,array_shift(array) 刪除第一個元素并返回炒瘸; array_unshift(array淤堵,val1,val2,...),將參數(shù)按照順序加入隊列中
   (22) array_change_key_case(array顷扩,CASE_LOWER/CASE_UPPER) 將字符串索引的轉(zhuǎn)換為大小寫,對數(shù)字索引不起作用
   (23) 集合操作:交集拐邪,array_intersect(array,arr1...)求數(shù)組元素的交集,array_intersect_assoc()求數(shù)組鍵-值的交集隘截;差集扎阶,array_diff(array,arr1...) 求數(shù)組的差集,array_diff_assoc(array,arr1...)求鍵-值的差集 intersect 交集婶芭;相交 diff 
   (24) array_flip() 交換數(shù)組的鍵-值對东臀,如果同一個值出現(xiàn)多次,則最后的索引會轉(zhuǎn)換成對應(yīng)的值
   (25) array_fill(int start,int num,mixed val)
   (26) array_count_values(array)  統(tǒng)計數(shù)組中元素的個數(shù)犀农,返回一個數(shù)組惰赋,鍵時原數(shù)組的值,值為出現(xiàn)的次數(shù)
   (27) array_key_exists(key,array)檢查索引是否存在于數(shù)組中
   (28) array_keys(array,[,searchvalue][,strict]) 獲取所有的索引;array_values()井赌,返回所有的元素谤逼,而不管是否重復(fù)
   (29) array_map(callbackfunc,arr1,arr2,...),數(shù)組的個數(shù)與回調(diào)函數(shù)的參數(shù)相同
   (30) array_filter(array,callbackfunc); 過濾數(shù)組中的元素贵扰,當(dāng)回調(diào)函數(shù)返回true時仇穗,元素放到結(jié)果集中,鍵名保持不變戚绕。
   (31) in_array(var,array) var是否在array中
   (32) key(array) 返回當(dāng)前元素的key

字符串內(nèi)置函數(shù)

   (1) 分割合并 explode(separator,str[,limit]) 使用字符串separator分割字符串str纹坐,limit用于限制返回數(shù)組中最多有幾個元素;implode(bds,array),將數(shù)組合并成字符串,使用bds鏈接元素
   (2) 比較和替換 strcmp(str1,str2) ;str_replace(search,replace,str),將str中search全部替換成replace舞丛,變形str_replace(searchArr,replaceArr,str),參數(shù)也可以是數(shù)組;substr_replace(string,replacement,start[,length]) 將string的start后的length長度(默認(rèn)到結(jié)尾)的字符串替換為replacement耘子,start和length可以為負(fù)數(shù),表示從尾部開始,length為負(fù)數(shù)時表示倒數(shù)但是不包括倒數(shù)第length個球切。
   (3) 輸出谷誓,print 嚴(yán)格的講,print是語言結(jié)構(gòu)吨凑,而不是函數(shù)捍歪,與echo的不同是print返回值是1户辱,而echo沒有返回值;echo可以打印多個string糙臼,而print只能打印一個string庐镐。
   (4) 格式化輸出 sprintf(format,mixed args) ,類似于C 語言的格式化輸出,類似的函數(shù)printf ,在這里假如使用$進行補齊变逃,需要使用"'$"這樣的寫法
   (5) 獲取子串 substr(string,start,length) 從string的start位置開始截取length長度的子字符串必逆;strstr(string,needle,flag) 查找string中needle第一次出現(xiàn)的位置,并返回之后的所有字符(包括本字符),若flag為true揽乱,則返回之前的所有字符(不包括本字符)名眉;strchr() 同strstr;strrchr(string,needle锤窑,flag) string中needle最后一次出現(xiàn)的位置璧针,返回之后的所有字符;strpos(string,needle[,start]) needle在string中第一次出現(xiàn)的位置渊啰。
  (6) 刪除首位兩端的多余字符探橱,trim(),ltrim(),rtrim(),默認(rèn)刪除兩端的空白字符,也可以自己指定绘证。如trim(string,reStr)
  (7) 獲取字符串長度 strlen(string) ,mb_strlen(string,encode)
  (8) 大小寫轉(zhuǎn)換 strtolower strtoupper
  (9) 處理html標(biāo)記的字符串 htmlentities(string) htmlspecialchars();html_entity_decode(string) 將html實體解析成字符串
  (10) 重復(fù)生成字符串 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的子字符串并返回一個數(shù)組胞枕;split(regex,string) 支持正則,根據(jù)regex分割字符串string

文件操作內(nèi)置函數(shù)

  (1) opendir(path) 打開目錄魏宽,返回一個資源類型的數(shù)值
  (2) closedir(path) 關(guān)閉目錄
  (3) readdir(dir) 讀取文件夾,獲取文件夾下的文件名而不是文件路徑
  (4) scandir(string dir) 返回文件夾中的文件名數(shù)組腐泻,失敗返回false,參數(shù)dir不是目錄返回false   
  (5) getcwd() 獲取當(dāng)前的工作目錄
  (6) chdir() 改變當(dāng)前的目錄
  (7) fp=fopen(filename队询,mode) 打開文件派桩,返回一個資源類型數(shù)據(jù),失敗返回false
  (8) fclose(fp) 關(guān)閉文件,參數(shù)是fopen的返回值
  (9) fgets(fp) 讀取一行蚌斩,參數(shù)需要是一個文件句柄
  (10) file(filename) 讀取整個文件铆惑,返回一個數(shù)組,每一個元素為文件的一行
  (11) get_file_contents(filename) 將整個文件讀到一個字符串中;fread(fp,length) 讀取整個文件送膳,可以安全讀取二進制文件员魏,如果單純的想將一個文件的內(nèi)容讀取到字符串,應(yīng)該使用性能更好的file_get_contens();                  
  (12) readfile() 讀入整個文件叠聋,并寫入輸出緩沖區(qū)撕阎,返回讀取的字節(jié)數(shù)
  (13) fwrite(fp,content),返回寫入的字節(jié)數(shù)碌补,
  (14) fputs(),與fwrite一樣
  (15) file_put_contents(filename,data虏束,mode)名斟,返回寫入的字節(jié)數(shù),data可以是一維數(shù)組魄眉,mode的取值FILE_USE_INCLUDE_PATH砰盐,F(xiàn)ILE_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) 創(chuàng)建成功返回true列疗,失敗返回false
  (23) rmdir(pathname) 目錄必須空目錄
  (24) unlink(filename) 刪除文件
  (25) copy(source,desc) 將source復(fù)制到desc,成功返回true
  (26) rename(oldname,newname)
  (27) fgetss(handle) 可以使用fopen打開url浪蹂,此時fgetss可以過濾掉html標(biāo)簽
  (28) include() require() 
  (29) filemtime() fileatime() filectime() 返回unix時間戳

時間日期內(nèi)置函數(shù)

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

1
2
3
URL處理內(nèi)置函數(shù)

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

數(shù)學(xué)運算

  (1) abs(num)
  (2) ceil(num)
  (3) floor(num) 
  (4) sqrt(num)
  (5) round(num,precision) 四舍五入成指定precision位數(shù)
  (6) 進制之間的轉(zhuǎn)換 bin 二進制古劲,dec 十進制, oct 八進制缰猴,hex 十六進制产艾,十進制轉(zhuǎn)二進制 decbin(num) ,十進制轉(zhuǎn)八進制 decoct(num) ,其余類似滑绒,不存在二進制闷堡、八進制、十六進制之間的轉(zhuǎn)換,若要實現(xiàn)這些轉(zhuǎn)換疑故,可以使用base_convert(num,from,to) 如 base_convert("A4",16,2);定義十六進制時不需要加0x34  
  (7) rand() mt_rand(min杠览,max) 隨機數(shù),其中mt_rand()可以生成指定范圍內(nèi)的隨機數(shù)焰扳,默認(rèn)時0~RAND_MAX

數(shù)據(jù)庫操作

  (1) 連接數(shù)據(jù)庫 conn = mysql_connect(host,username,password)
  (2) 關(guān)閉鏈接 mysql_close(conn);
  (3) 執(zhí)行語句 mysql_query(sql) 僅對show倦零,select误续,describe等語句返回一個資源標(biāo)示吨悍,對于其他SQL語句,mysql_query() 在執(zhí)行成功時返回TRUE蹋嵌,出錯時返回FALSE
  (4) 處理查詢結(jié)果集 
        mysql_affected_rows() 取得前一次mysql操作所影響的記錄行數(shù)育瓜,失敗返回-1
        mysql_fetch_row($result) result是執(zhí)行mysql_query()之后返回的資源標(biāo)識,該函數(shù)從查詢結(jié)果集中返回一行數(shù)據(jù)栽烂。該函數(shù)返回值時一個數(shù)組躏仇,其中每一個元素對應(yīng)一行結(jié)果記錄的字段值恋脚。依次調(diào)用該函數(shù)可以返回結(jié)果集中的下一行,如果沒有更多行焰手,函數(shù)返回false糟描。
        mysql_fetch_array(result,type) 返回一行關(guān)聯(lián)數(shù)組,或普通數(shù)組书妻,或二者兼有船响,type:MYSQL_ASSOC 返回關(guān)聯(lián)數(shù)組 MYSQL_NUM 普通數(shù)組 MYSQL_BOTH 二者兼有,通常使用該函數(shù)獲取各字段的值
        mysql_fetch_assoc(result) 與mysql_fetch_array()類似,返回的時關(guān)聯(lián)數(shù)組
  (5) 獲取字段信息 mysql_fetch_field(result[,field_offset]) 返回一個object對象躲履,屬性包括包括name见间,table,not_null,primary_key等
  (6) 選擇數(shù)據(jù)庫工猜,mysql_select_db(databasename) 鏈接上數(shù)據(jù)庫之后米诉,使用該函數(shù)選擇databasename數(shù)據(jù)庫
  (7) 獲取結(jié)果集行數(shù) mysql_num_rows(result) ,僅對select語句有效;要取得insert,update篷帅,delete執(zhí)行影響的結(jié)果行數(shù)史侣,需要使用mysql_affected_rows()

正則表達式

  (1) int ereg(pattern,string[,&regs]) pattern 正則表達式,待匹配string魏身,匹配結(jié)果放在regs中抵窒,其中regs[0] 存放匹配到的整個字符串,其余的1,2...依次存放合乎規(guī)則的字符串叠骑。省略regs李皇,則只單純使用正則表達式作匹配,如果在string中找到pattern模式的匹配宙枷,那么該函數(shù)返回所匹配字符串的長度掉房,如果沒有傳遞入可選參數(shù)regs或者所匹配的字符串長度為0,則返回1慰丛,如果沒有找到匹配或者出錯卓囚,返回false。        
  (2) int eregi(pattern,string,regs) 忽略大小寫
  (3) split(pattern,string[,limit]) 利用正則表達式分割字符串
  (4) sql_regcase(string) 返回string相匹配的正則表達式诅病,這個正則表達式不區(qū)分大小寫
  (5) ereg_replace(pattern,replacement,string) 替換匹配字符串哪亿,eregi_replace(pattern,replacement,string) 不區(qū)分大小寫
  (6) 與perl兼容的正則表達式函數(shù),perl正則表達式需要使用定界符(/),比如贤笆,"/<\/\w+>/"蝇棉。函數(shù):array preg_grep(pattern,input[,flag]) 類似ereg(),返回相匹配的元素,當(dāng)flag=1時芥永,返回數(shù)組中時不匹配元素篡殷;
  (7) int preg_match(pattern,subject,matches[,flag]); 類似ereg(),捕獲的匹配放到mathes中
  (8) int preg_match_all(pattern,subject,matches[,flag]); 全局搜索,找到第一個匹配之后埋涧,會繼續(xù)搜索板辽。搜索的結(jié)果存放在matches奇瘦;
  (9) mixed preg_replace(pattern,replacement,subject[,limit]),其中公pattern,replacement可以是數(shù)組劲弦。
  (10) array preg_split(pattern,subject[,limit[,flag]])
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末耳标,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子邑跪,更是在濱河造成了極大的恐慌麻捻,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呀袱,死亡現(xiàn)場離奇詭異贸毕,居然都是意外死亡,警方通過查閱死者的電腦和手機夜赵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門明棍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人寇僧,你說我怎么就攤上這事摊腋。” “怎么了嘁傀?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵兴蒸,是天一觀的道長。 經(jīng)常有香客問我细办,道長橙凳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任笑撞,我火速辦了婚禮岛啸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘茴肥。我一直安慰自己坚踩,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布瓤狐。 她就那樣靜靜地躺著瞬铸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪础锐。 梳的紋絲不亂的頭發(fā)上嗓节,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機與錄音郁稍,去河邊找鬼赦政。 笑死胜宇,一個胖子當(dāng)著我的面吹牛耀怜,可吹牛的內(nèi)容都是我干的恢着。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼财破,長吁一口氣:“原來是場噩夢啊……” “哼掰派!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起左痢,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤靡羡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后俊性,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體略步,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年定页,在試婚紗的時候發(fā)現(xiàn)自己被綠了趟薄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡典徊,死狀恐怖杭煎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情卒落,我是刑警寧澤羡铲,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站儡毕,受9級特大地震影響也切,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜腰湾,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一贾费、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧檐盟,春花似錦褂萧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至羡忘,卻和暖如春谎痢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背卷雕。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工节猿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓滨嘱,卻偏偏與公主長得像峰鄙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子太雨,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫块饺、插件芦圾、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,059評論 4 62
  • 前言:最近比較閑摔刁,正好利用這段時間把現(xiàn)在項目用的東西封裝一下婴洼,方便以后復(fù)用,當(dāng)然好的東西還是要分享锥咸。一起學(xué)習(xí)狭瞎,一起...
    碼渣閱讀 3,443評論 5 9
  • 同樣的每天24小時脚作,高手們做了什么成為高手?今天我們來看看他們的一天如何度過的缔刹。 細(xì)節(jié)是魔鬼啊球涛,都是細(xì)節(jié)! 他們強...
    馬小惠閱讀 333評論 0 1
  • 首推當(dāng)然是丁墨大大的書校镐,當(dāng)然她的書不僅是偵探言情亿扁,還有現(xiàn)言、古言鸟廓、科幻愛情的都是超級棒的書从祝,感興趣的朋友可以搜丁墨...
    長弓心悅閱讀 5,916評論 0 1