這篇文章主要介紹了php常用字元函數,結合實例形式總結分析了php常用字元函數substr、preg_match、strpos、dirname及str_split功能、用法與相關注意事項,需要的朋友可以參考下
本文實例總結了php常用字元函數。分享給大家參考,如下:
1. string substr(string $string, int $start [,int $length])
函數函數:傳回字串string由start和length參數指定的子字串。
參數:
string:輸入字元字串。
start:如果start是非負數,則傳回的字串將從string的start位置開始,從0開始計算。如,在‘abcdef'中,在位置0的為‘a',位置2為‘c ';
如果start是負數,則回傳字串將從string結尾處向前數第start個字元開始。
如果string的長度小於或等於start,則傳回FALSE。
$rest=substr(" abcdef ",-1);//返回“ f ” $rest=substr(" abcdef ",-2);// 返回 “ ef ” $rest=substr(" abcdef ",-3,1); //返回 “ d ”
$length:如果提供了正數的length,則傳回的字串從start開始最多包含length個字元(取決於string的長度)。
如果提供了負數的length,那麼string末尾處的許多字元將會漏掉,即為從末尾處不考慮字元(可以理解我截斷),如果start不在文字中,那麼將返回一個空字串。
如果提供了值為0,FALSE或NULL的length,那麼將會傳回一個空字串。
如果沒有提供length,傳回的字串將從start的位置一直到字元結束。
$rest=substr("abcdef","0","-1"); //返回 abcde $rest=substr("abcdef","2","-1"); //返回 cde $rest=substr("abcdef"," 4","-4"); //返回 NULL $rest=substr("abcdef","-3","-1"); //返回 de
[ ]中括號代表此參數為可選參數,不設定為預設參數。 (接觸php快8個月了,一直奇怪函數的參數為啥要加個中括號,今天終於忍不住百度了下!慚愧!)
2. int preg_match(string $pattern ,string $subject [, array &$matches [, int $flag=0 [, int $offset=0 ]]])
#函數功能:搜尋subject與pattern給定的
正規表示式的一個符合。
參數:$pattern:要搜尋的模式,
字元類型###。 ######$subject###:輸入字串。 ######$matches###:如果提供了參數matches,它將被填充為搜尋結果,$matches[0]包含完整模式匹配到的文本,$matches[1]將包含第一個捕獲子組匹配到文本,以此類推。 ######$flags### :flags可以被設定為以下標記值:###### ###PREG_OFFSET_CAPTURE#########如果傳遞了這個標記, 對於每一個出現的匹配返回時會附加字串偏移量(相對於目標字串的). 注意: 這會改變填充到matches參數的數組, 使其每個元素成為 一個由第0個元素是匹配到的字符串, 第1個元素是該匹配字串在目標字串subject中的偏移量.#########offset###:#######通常, 搜尋從目標字串的開始未知開始.可選參數offset用於指定從目標字串的某個未知開始搜尋(單位是位元組).##########Note###:######使用offset參數不同於向preg_match() 傳遞依照位置透過substr($subject, $offset) 截取目標字串結果, 因為pattern可以包含斷言例如^,$ 或(?<=x). 比較:###<?php $subject = "abcdef"; $pattern = '/^def/'; preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3); print_r($matches); ?>## #以上例程會輸出:###
Array ( )
<?php $subject = "abcdef"; $pattern = '/^def/'; preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE); print_r($matches); ?>###將會產生符合###
Array ( [0] => Array ( [0] => def [1] => 0 ) )#########3. strpos(string,find,start)########## ######string###:必須,規定被搜尋的字串。 ######find###:必須,規定要找的字元。 ######start###:可選,規定開始搜尋的位置,預設從第一個字元開始。 ######此函數對大小寫敏感,如不希望這樣可以使用stripos()函數#######例:###
echo strpos("Hello world! "," wo ");// 输出 6#########4. string dirname(string path)############函數功能:取得路徑中的目錄名稱。在 Win32 系統中,用斜線 (/) 或反斜線 (\) 都可以;但是其它的作業系統的路徑都是 (/)。 ###
$path = "/etc/hostname"; $file = dirname($path);###$file 為 "/etc"#############5. str_split(string,length)#########
string 必需。规定要分割的字符串。
length 可选。规定每个数组元素的长度。默认是 1。
<?php print_r(str_split("Hello")); ?>
运行结果:
Array ( [0] => H [1] => e [2] => l [3] => l [4] => o )
以上是php 常用的字元函數匯總的詳細內容。更多資訊請關注PHP中文網其他相關文章!