php常用的系統(tǒng)函數(shù)
字符串函數(shù)
strlen:獲取字符串長度徘跪,字節(jié)長度
substr_count 某字符串出現(xiàn)的次數(shù)
substr:字符串截取司光,獲取字符串(按照字節(jié)進(jìn)行截榷链妗)
mb_strlenmb_substr
strchr:與substr相似涛救,從指定位置截取一直到最后
strrchr(獲取文件后綴名):與strchr一樣毁枯,只是從右邊開始查找字符
strtolower:所有的字符都小寫(針對英文字母)
strtoupper:所有的字符都大寫
strrev:字符串反轉(zhuǎn)(只能反轉(zhuǎn)英文:英文存儲只有一個(gè)字節(jié)),按照字節(jié)進(jìn)行反轉(zhuǎn)
strpos:從字符串中找對應(yīng)字符出現(xiàn)的位置(數(shù)字下標(biāo))袱衷,從最左邊開始找
strrpos:與strpos一樣捎废,只是從字符串的右邊開始找
trim:去掉函數(shù)兩邊的字符,默認(rèn)是空格
str_split 函數(shù)把字符串分割到數(shù)組中致燥。
chunk_split() 函數(shù)把字符串分割為一連串更小的部分
str_repeat("Shanghai",5);把字符串 "Shanghai " 重復(fù) 5 次
str_replace('\', '/', dirname(DIR))); 替換
ucfirst 首字母大寫
時(shí)間日期函數(shù)
time:得到當(dāng)前時(shí)間的時(shí)間戳(整型:從格林威治時(shí)間1970年1月1日0時(shí)0分0秒開始)秒數(shù)
date:時(shí)間序列化函數(shù)登疗,將指定的時(shí)間戳轉(zhuǎn)換成規(guī)定時(shí)間日期的顯示格式(隨意的字符串:有專業(yè)的格式符規(guī)定),如果沒有指定時(shí)間戳嫌蚤,系統(tǒng)默認(rèn)使用當(dāng)前時(shí)間的時(shí)間戳
strtotime:時(shí)間日期格式的字符串轉(zhuǎn)換成對應(yīng)的時(shí)間戳(只要是正確的英語時(shí)間表達(dá)方式辐益,都可以進(jìn)行轉(zhuǎn)換)
microtime:微秒時(shí)間戳,根據(jù)不同的要求返回不同的結(jié)果 混合 microtime (布爾類型 )脱吱,可以返回一個(gè)浮點(diǎn)數(shù)的時(shí)間智政,也可以返回一個(gè)數(shù)組(時(shí)間戳和微秒數(shù))
數(shù)學(xué)相關(guān)函數(shù)
abs:絕對值
floor:向下取整 floor(3.2) 結(jié)果等于3
ceil:向上取整
round:四舍五入
rand:取得一個(gè)指定范圍內(nèi)的隨機(jī)整數(shù)
mt_rand:取得一個(gè)指定范圍內(nèi)的隨機(jī)整數(shù)(效率更高)
min:PHP 會(huì)將非數(shù)值的 string 當(dāng)成 0,但如果這個(gè)正是最小的數(shù)值則仍然會(huì)返回一個(gè)字符串箱蝠。如果多個(gè)參數(shù)都求值為 0 且是最小值续捂,min() 會(huì)返回按字母表順序最小的字符串垦垂,如果其中沒有字符串的話,則返回?cái)?shù)值的 0;
max:PHP 會(huì)將非數(shù)值的字符串當(dāng)成 0牙瓢,但如果這個(gè)正是最大的數(shù)值則仍然會(huì)返回一個(gè)字符串劫拗。如果多個(gè)參數(shù)都求值為 0 且是最大值,max() 會(huì)返回其中數(shù)值的 0一罩,如果參數(shù)中沒有數(shù)值的 0杨幼,則返回按字母表順序最大的字符串。對于多個(gè)數(shù)組,max從左到右比較;如果同時(shí)出現(xiàn)數(shù)組和非數(shù)組參數(shù)總把數(shù)組作為最大值返回;
數(shù)組相關(guān)函數(shù)
count() // 非數(shù)組返回1
key:獲取當(dāng)前數(shù)組當(dāng)前指針?biāo)赶虻脑氐南聵?biāo)
current:獲取的當(dāng)前指針指向元素的數(shù)值
next:獲取下一個(gè)元素的值聂渊,并且將指針下移
prev:獲取上一個(gè)元素的值,并且將指針上移
end :將指針移到數(shù)組的最后一個(gè)元素四瘫,并返回最終指針位置的值
reset:將指針移到數(shù)組的第一個(gè)元素汉嗽,返回最終指針位置的值
array_keys:獲取一個(gè)數(shù)組的所有鍵名,返回一個(gè)索引數(shù)組
array_values:獲取一個(gè)數(shù)組的所有值找蜜,返回一個(gè)索引數(shù)組
explode:爆炸饼暑,將一個(gè)字符串按照某個(gè)指定的規(guī)則(通常是特殊字符),將數(shù)組分成多個(gè)段洗做,每一段都當(dāng)做一個(gè)數(shù)組的元素弓叛,返回一個(gè)索引數(shù)組
split 類似 explode explode('.', 'abc.txt')等于split('.','abc.txt')
implode:粘合,將一個(gè)數(shù)組內(nèi)部的所有元素按照某個(gè)指定的規(guī)則(特殊字符)诚纸,將所有的元素拼接成一個(gè)字符串
join() 把數(shù)組元素組合為一個(gè)字符串
array_merge:合并撰筷,指的是將兩個(gè)數(shù)組中的元素進(jìn)行累計(jì)。如果后面的數(shù)組與前面的數(shù)組有下標(biāo)(鍵名:關(guān)聯(lián))相同的畦徘,那么后面的元素的值會(huì)覆蓋前面的毕籽;如果是索引的相同下標(biāo),會(huì)自動(dòng)的修改下標(biāo)疊加到前面的數(shù)組里井辆。
array_reverse — 返回反轉(zhuǎn)后的數(shù)組
array_flip — 交換數(shù)組中的鍵和值
數(shù)據(jù)結(jié)構(gòu)模擬函數(shù)
array_shift:從數(shù)組的前面彈出元素关筒,得到元素的值
array_pop:從數(shù)組的后面彈出元素,獲得元素的值
array_unshift:從數(shù)組的前面壓入元素杯缺,得到當(dāng)前數(shù)組元素的個(gè)數(shù)
array_push:從數(shù)組的后面壓入元素蒸播,得到當(dāng)前數(shù)組元素的個(gè)數(shù)
判斷變量
is_bool:判斷是否是布爾類型
is_float:判斷浮點(diǎn)型
is_integer:判斷整型
is_object:判斷對象
is_array:判斷數(shù)組
is_string:判斷字符串
is_resource:判斷資源
is_scalar:scalar是標(biāo)量的,判斷是基本數(shù)據(jù)類型:整型萍肆,浮點(diǎn)型袍榆,布爾型和字符串型
is_null 檢測變量是否為NULL 是返回TRUE 否則返回false。1.被賦值為NULL;2.變量沒被賦值;3.被unset()
is_numeric:判斷數(shù)字或者純數(shù)字組成的字符串
gettype:獲得數(shù)據(jù)類型
settype:改變數(shù)據(jù)類型
isset
unset() 如果在函數(shù)中 unset() 一個(gè)全局變量匾鸥,則只是局部變量被銷毀蜡塌,而在調(diào)用環(huán)境中的變量將保持調(diào)用 unset() 之前一樣的值,如果在函數(shù)中 unset() 一個(gè)通過引用傳遞的變量,則只是局部變量被銷毀勿负,而在調(diào)用環(huán)境中的變量將保持調(diào)用 unset() 之前一樣的值馏艾。empty//array(),"",0,"0",NULL,FALSE 都返回true
文件操作函數(shù)
opendir(路徑):打開一個(gè)路徑資源(將路徑內(nèi)部的所有數(shù)據(jù)讀入到內(nèi)存)
readdir(路徑資源):從文件夾資源中讀取當(dāng)前資源指針?biāo)赶虻奈募拿掷筒埽羔槙?huì)向下移動(dòng)一位
closedir(資源):釋放對應(yīng)的文件資源
scandir(路徑):讀取一個(gè)路徑內(nèi)部的所有文件名,返回一個(gè)數(shù)組琅摩,數(shù)組的每一個(gè)元素都是文件名铁孵。
file_exists:判斷一個(gè)文件是否存在(文件是廣義:路徑和文件)
is_dir:判斷一個(gè)指定路徑是否存在(文件夾)
is_file:判斷一個(gè)指定路徑是否是文件(文件)
mkdir:創(chuàng)建一個(gè)路徑,如果路徑存在就會(huì)報(bào)錯(cuò)
rmdir:移除文件夾
file_get_contents:從一個(gè)指定的文件內(nèi)讀取數(shù)據(jù)內(nèi)容房资。
file_put_contents:將指定的字符串寫入到對應(yīng)的文件
fopen:打開一個(gè)文件資源
fgetc:c代表character蜕劝,一次讀取一個(gè)字符
fgets:s代表string,代表可以讀取多個(gè)字符轰异,取決于指定的讀取長度或者是否碰到換行(最多只能讀取一行數(shù)據(jù))
兩個(gè)函數(shù)都是對當(dāng)前資源指針進(jìn)行操作岖沛,讀取之后都會(huì)將指針下移
fread:獲取指定長度的數(shù)據(jù)直到文件結(jié)束
fwrite:向文件資源指針?biāo)诘奈恢脤懭霐?shù)據(jù),寫東西不會(huì)將當(dāng)前位置已有的東西往后移搭独,而是會(huì)覆蓋
fseek:將指針指定到對應(yīng)的位置
fclose:使用對應(yīng)的文件資源
copy:復(fù)制
unlink:刪除文件
rename:重命名文件
filemtime:m代表modify婴削,文件最后被修改的時(shí)間
filesize:文件大小(字節(jié))
fileperms:文件權(quán)限(Linux下的八進(jìn)制)
排序
rsort() 函數(shù)用于對數(shù)組單元從高到低進(jìn)行排序牙肝。asort() 函數(shù)用于對數(shù)組單元從低到高進(jìn)行排序并保持索引關(guān)系唉俗。arsort() 函數(shù)用于對數(shù)組單元從高到低進(jìn)行排序并保持索引關(guān)系。ksort() 函數(shù)用于對數(shù)組單元按照鍵名從低到高進(jìn)行排序配椭。krsort() 函數(shù)用于對數(shù)組單元按照鍵名從高到低進(jìn)行排序虫溜。
報(bào)錯(cuò)
error_reporting(E_ALL)
ini_set('display_errors', 1)
常量
define() 定義常量defined() 檢測常量是否定義
序列化
serialize
unserialize
json_encode 對變量進(jìn)行 JSON 編碼
json_decode 對JSON 格式的字符串進(jìn)行編碼
編碼
base64_encode 編碼
本函數(shù)將字符串以 MIME BASE64 編碼。在 BASE64 編碼后的字符串只包含英文字母大小寫股缸、阿拉伯?dāng)?shù)字衡楞、加號與反斜線,共 64 個(gè)基本字符乓序,不包含其它特殊的字符寺酪,因而才取名 BASE64。
base64_decode 解碼