首頁  >  文章  >  後端開發  >  php 常用的字元函數匯總

php 常用的字元函數匯總

怪我咯
怪我咯原創
2017-07-07 09:52:031731瀏覽

這篇文章主要介紹了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 = &#39;/^def/&#39;;
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
print_r($matches);
?>
## #以上例程會輸出:###
Array
(
)
<?php
$subject = "abcdef";
$pattern = &#39;/^def/&#39;;
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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn