PHP 作業中常用的字串函式
mb_xxxx和xxxx函式的卻別:
mb_xxxx和xxxxd函式不同的是,mb_xxxxx中的$str 中字母字符的檢測是根據字符的 Unicode 屬性,因此函式的行為不會受語言設定的影響,能夠轉換任意具有“字母”屬性的字符,
所以mb_xxxx可以比較好的處理中文,
一、關于字串大小寫轉換的函式
1、strtoupper($string):將字串$string中的字母轉換成大寫,并將轉化后的字串回傳;
$str = '這是一個string'; echo strtoupper($str); //輸入結果: //這是一個STRING
2、mb_strtoupper():與 strtoupper() 函式類似,同樣可以將字串中的字母轉化為大寫,并且 mb_strtoupper() 函式還可以設定引數的字符編碼
mb_strtoupper($str [, $encoding = mb_internal_encoding()])
//$str 是需要轉化的字串,$encoding 是一個可選引數,用來設定引數的字符編碼,
3、strtolower($string):將字串$string中的字母轉換成小寫,并將轉化后的字串回傳;
$str = '這是一個STRing'; echo strtolower($str); //輸出結果: //這是一個string
4、mb_strtolower():與strtolower()函式類似,同樣可以講字串中的字母轉化為小寫,并且還可設定引數的字符編碼
mb_strtolower($str [, $encoding = mb_internal_encoding()]) //$str 是需要轉化的字串,$encoding 是一個可選引數,用來設定引數的字符編碼,
5、ucfirst($string):將字串$string中的第一個字母轉化成大寫;
$str = '這是一個string'; $str1 = 'hello world!'; echo ucfirst($str); echo '<br/>'; echo ucfirst($str1); //輸出結果: //這是一個string //Hello world!
6、lcfirst($string):將字串$string中的第一個字母轉化成小寫;
$str = '這是一個string'; $str1 = 'HELLO world!'; echo lcfirst($str); echo '<br/>'; echo lcfirst($str1); //輸出結果: //這是一個string //hELLO world!
7、ucwords():將字串中的每個單詞的首字母轉換成大寫;
ucwords($str [, $delimiters = "\t\r\n\f\v" ]) //$str 為需要轉化的字串;$delimiters 為可選引數,用來表示單詞分隔符,默認是空格符、制表符、換行符、回車符、水平線以及豎線,
$str = 'hello world!'; $str1 = 'HELLO WORLD!'; $str2 = 'www.baidu.com'; echo ucwords($str); echo '<br/>'; echo ucwords($str1); echo '<br/>'; echo ucwords($str2); echo '<br/>'; echo ucwords($str2,'.'); //輸出結果: //Hello World! //HELLO WORLD! //Www.baidu.com //Www.Baidu.Com
8、mb_convert_case():可以對字串進行大小寫轉換
mb_convert_case($str, $mode [, $encoding = mb_internal_encoding()]) //$str 是需要轉換的字串; //$mode 是轉換模式,可以是 MB_CASE_UPPER、 MB_CASE_LOWER 和 MB_CASE_TITLE 的其中一個; //MB_CASE_UPPER:將字串轉化成大寫 //MB_CASE_UPPER:將字串轉化成小寫 //MB_CASE_TITLE:將首字母大寫,其他字母小寫 //$encoding 是引數的字符編碼,可以省略,
$str = 'hello world!'; $str1 = 'HELLO WORLD!'; $str2 = 'www.baidu.com'; echo mb_convert_case($str,MB_CASE_UPPER);echo '<br/>'; echo mb_convert_case($str1,MB_CASE_LOWER); echo '<br/>'; echo mb_convert_case($str2,MB_CASE_TITLE); echo '<br/>'; echo mb_convert_case($str1,MB_CASE_TITLE); echo '<br/>'; echo mb_convert_case($str,MB_CASE_TITLE); //輸出結果: //HELLO WORLD! //hello world! //Www.baidu.com //Hello World! //Hello World!
和 strtolower()、strtoupper() 函式相比,mb_convert_case() 函式大小寫轉換的執行根據 Unicode 字符屬性的基礎,因此 mb_convert_case() 函式的行為不受語言環境(locale)設定的影響,能夠轉換任意具有“字母”屬性的字符,
二、關于字串查找的函式
1、strpos():用來查找字串首次出現的位置(區分大小寫);
mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) 引數說明: ·haystack:在該字串中查找; ·needle:needle 可以是一個單字符或者多字符的字串,如果 needle 不是一個字串,那么它將被轉換為整型并被視為字符順序值 ·offset:偏移量,可選的 offset 引數允許你指定從 haystack 中的哪個字符開始查找,回傳的位置數字值仍然相對于 haystack 的起始位置 回傳:回傳 needle 存在于 haystack 字串開始的位置(獨立于偏移量) 注: ·字串位置起始于 0,而不是 1; ·如果未發現needle,則回傳false;
?? 此函式的偏移量不能是負數!
eg.
$str = 'This is a string'; echo strpos($str,'s'); //輸出:3 echo strpos($str,'s',4); //輸出:6 echo strpos($str,'is'); //輸出:2 echo strpos($str,' s'); //輸出:9 echo strpos($str,'T'); //輸出:0 echo strpos($str,'t'); //輸出:11
2、stripos():和strpos()函式類似,用來查找字串首次出現的位置;不同的是它不區分大小寫,
語法和strpos()一樣
?? 此函式的偏移量不能是負數!
eg.
$str = 'This is a string'; echo stripos($str, 's'); //輸出:3 echo stripos($str,'T'); //輸出:0 echo stripos($str,'t'); //輸出:0
3、strrpos():用來計算指定字串在目標字串中最后一次出現的位置(區分大小寫)
語法和strpos()一樣
?? 如果是負數的偏移量,將會導致查找在字串結尾處開始的計數位置處結束,
eg.
$str = 'This is a string'; echo strrpos($str,'g'); //輸出:15 echo strrpos($str,'g',-1);//輸出:15 echo strrpos($str,'s'); //輸出:10 echo strrpos($str,'s',-7);//輸出:6 echo strrpos($str,'i'); //輸出:13 echo strrpos($str,'i',-4);//輸出:5
4、strripos():與strrpos()函式類似,用來查找字串在目標字串中最后一次出現的位置,不同的是它不區分大小寫,
語法和strpos()一樣,
?? 負數偏移量將使得查找從字串的起始位置開始,到 offset 位置為止,
eg.
$str = 'This is a string'; echo strrpos($str,'T'); //輸出:0 echo '<br/>'; echo strrpos($str,'t'); // 輸出:11 echo strripos($str,'T'); //輸出:11 echo '<br/>'; echo strripos($str,'t'); //輸出:11
三、關于字串替換的函式
1、str_replace():使用新的字串替換原來字串中指定的字串(區分大小寫)
mixed str_ireplace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) 引數說明: ·search: 原來字串或陣列中要替換的字串 ·replace:替換search新的字串 ·subject:原來字串 ·count:表示執行替換的次數 回傳:回傳一個字串或者陣列
eg.
$str = 'This is a string'; $search = 'This'; $search1 = 'this'; $replace = 'That'; echo str_replace($search, $replace, $str); // 輸出:That is a string echo str_replace($search1, $replace, $str); //輸出:This is a string
2、str_ireplace():同str_replace()用法一樣,區別是它不區分大小寫;
$str = 'This is a string'; $search = 'This'; $search1 = 'this'; $replace = 'That'; echo str_ireplace($search, $replace, $str); //輸出:That is a string echo str_ireplace($search1, $replace, $str); //輸出:That is a string
$str = 'This is a string'; $search = 'This'; $search1 = 'this'; $search2 = 's'; $replace = 'That'; echo str_ireplace($search2, 'A', $str); //輸出:ThiA iA a Atring echo str_replace($search2, 'A', $str,$count);//輸出:ThiA iA a Atring echo $count;//輸出:3
3、substr_replace():替換字串的子串
mixed substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] ) substr_replace() 在字串 string 的副本中將由 start 和可選的 length 引數限定的子字串使用 replacement 進行替換,
注:
如果 start 為正數,替換將從 string 的 start 位置開始,如果 start 為負數,替換將從 string 的倒數第 start 個位置開始,
如果設定了 length 引數并且為正數,就表示 string 中被替換的子字串的長度,如果設定為負數,就表示待替換的子字串結尾處距離 string 末端的字符個數,如果沒有提供此引數,那么默認為 strlen(string)(字串的長度),當然,如果 length 為 0,那么這個函式的功能為將 replacement 插入 string 的 start 位置處,
$str = 'Hello world,hello world'; $replace = 'Hi'; echo substr_replace($str, $replace, 0); //輸出:Hi echo substr_replace($str, $replace, 0,2); //輸出:Hillo world,hello world echo substr_replace($str, $replace, 0,5); //輸出:Hi world,hello world echo substr_replace($str, $replace, 0,0); //輸出:HiHello world,hello world
四、有關字串截取的函式
1、substr():從字串的指定位置截取一定長度的字串;這段被截取的字符可稱為“子串”或者“子字串”;
substr($string, $start [, $length]) 引數說明如下: $string:需要截取的字串,該字串至少含有一個字符; $start:截取字串的起始位置; 如果 $start 是非負數,那么字串將從 $string 的第 $start 個字符處開始截取,$start 從 0 開始計算, 如果 $start 是負數,那么字串將從 $string 結尾處向前數第 $start 個字符開始,$start 從 -1 開始計算,例如在字串“abcdef”中,在 -1 位置的字符是“f”;
如果 $string 的長度小于 $start,將回傳 FALSE, $length:可選引數,表示截取字串的長度, 如果 $length 為正數,那么字串將從 $start 位置向后截取最多 $length 個字符; 如果 $length 為負數,那么 $string 末尾的 $length 個字符將會被省略(若 $start 是負數則從字串尾部算起); 如果 $length 的值為 0,FALSE 或 NULL,那么將回傳一個空字串; 如果沒有提供 $length,那么回傳的子字串將從 $start 位置開始直到字串的結尾,
eg.
$str = 'Hello world,hello world'; $replace = 'Hi'; echo substr($str,0); //輸出:Hello world,hello world echo '<br>'; echo substr($str,1);// 輸出:Hello world,hello world echo '<br>'; echo substr($str,0,1);//輸出:H echo '<br>'; echo substr($str,-1,1);//輸出:d echo '<br>'; echo substr($str, 1,-1);//輸出:ello world,hello worl echo '<br>'; echo substr($str, -5,-1);//輸出:worl echo '<br>'; echo substr($str, -5,-4);//輸出:w
五、有關去除字串兩邊的空格的函式
1、trim():去除字串兩邊的空格或其他字符;
trim($str [, $character_mask = " \t\n\r\0\x0B"]) 引數說明: ·$str:待處理的字串; ·$character_mask:可選引數,用于指定所有要去除的字符,也可以使用“..”列出一個字符范圍, 如果不指定 $character_mask 引數,trim() 函式將去除下面這些字符: " ":普通空格符; "\t":制表符; "\n":換行符; "\r":回車符; "\0":空位元組符; "\x0B":垂直制表符,
eg.
$str = ' @Hello world,hello world@ '; var_dump(trim($str)); //輸出:string(25) "@Hello world,hello world@" echo '<br/>'; var_dump(trim($str,'@'));//輸出:string(27) " @Hello world,hello world@ " echo '<br/>'; var_dump(trim($str,' @'));//輸出:string(23) "Hello world,hello world"
2、ltrim():去除字串開頭的空白字符或者其它指定的字符;同trim()語法一樣,不同的是,它只能處理左邊也就是字串開頭的的字串;
$str = ' @Hello world,hello world@ '; var_dump(ltrim($str)); //輸出:string(26) "@Hello world,hello world@ " echo '<br/>'; var_dump(ltrim($str,'@'));//輸出:string(27) " @Hello world,hello world@ " echo '<br/>'; var_dump(ltrim($str,' @'));//輸出:string(25) "Hello world,hello world@ "
3、rtrim():去除字串結尾的空白字符或者其他指定的字符;同trim()語法一樣,不同的是,它只能處理右邊也就是字串結尾的字串;
$str = ' @Hello world,hello world@ '; var_dump(rtrim($str));//輸出:string(26) " @Hello world,hello world@" echo '<br/>'; var_dump(rtrim($str,'@'));//輸出:string(27) " @Hello world,hello world@ " echo '<br/>'; var_dump(rtrim($str,' @'));//輸出:string(25) " @Hello world,hello world"
六、有關字串長度的函式
1、strlen():計算字串的長度;
int strlen ( string $str ) 引數說明: $str 表示被計算的字串
$str = ' @Hello world,hello world@ '; $str1 = '這是一個string'; var_dump($str); //輸出:string(27) " @Hello world,hello world@ " var_dump($str1);//輸出:string(18) "這是一個string" echo strlen($str);//輸出:27 echo mb_strlen($str);//輸出:27 echo strlen($str1);//輸出:18 echo mb_strlen($str1);//輸出:10
七、有關字串轉義的函式
1、addslashes():轉義字串,所謂轉義,就是在某些特殊字符前面加上轉義符號\,這些特殊字符包括單引號'、雙引號"、反斜線\與空字符NULL,
string addslashes(string $str) 引數說明: $str 表示要被轉義的字符; 回傳:轉義后的字串;
$str = "I'm a beauty"; echo addslashes($str); //輸出:I\'m a beauty
2、stripslashes():還原經addslashes()轉義過的字串
string stripslashes(string $str) 引數說明: $str 表示經addslashes()轉義過的字串 回傳:回傳未經轉義的字串
$str = "I'm a beauty"; $str1 = addslashes($str); echo stripslashes($str1); //輸出:I'm a beauty
八、有關字串重復的函式
1、str_repeat():重復一個字串;
string str_repeat(string $str,int $n) 引數說明: $str 表示要重復的字串; $n 重復的次數; 回傳:回傳str重復n次的字串
?? n必須大于0,如果n=0,則回傳一個空字串;
$str = "I'm a beauty! <br/>"; echo '重要的事兒重復3遍:<br/>'.str_repeat($str, 3); //輸出: 重要的事兒重復3遍: I'm a beauty! I'm a beauty! I'm a beauty!
九、有關隨機打亂字串的函式
1、str_shuffle():隨機打亂字串中的所有字符;
string str_shuffle ( string $str ) 引數說明: $str 表示未經打亂的字串 回傳:回傳順序打亂的字串
$str = "I'm a beauty!"; echo str_shuffle($str); echo '<br/>'; echo str_shuffle($str); echo '<br/>'; echo str_shuffle($str); //輸出: me !a'Ituyb a ey'um baIt!a ! tbeIyam a'u
十、有關字串轉換成陣列的函式
1、explode():將字串按照特定的分隔符分割成若干個子串,并將自卸子串組成陣列回傳;
explode($delimiter, $string [, $limit]) 引數說明: ·$delimiter:表示用于分割字串的分隔符; ·$string:需要分割的字串; ·$limit:可選引數,可以為空,規定要回傳陣列元素的數目; ·$limit 不為空且為正數,則回傳的陣列最多包含limit個元素,最后一個元素包含了string剩下的所有字符; ·$limit 不為空且為負數,自回傳除了最后limit個元素之外的所有元素; ·$limit 等于0,則會被當作1; ·$limit 為空,則回傳所有元素 回傳:陣列
?? 如果$delimiter為空字串"",程式會提示warning,且函式會回傳FALSE;
?? 如果$delimiter的值在string中找不到且使用了負數的$limit,則會回傳空的陣列,否則回傳只有一個元素(string)的陣列;
eg.
$str = "I'm a beauty!"; var_dump(explode(" ", $str)); var_dump(explode(" ", $str,2)); var_dump(explode(" ", $str,-1)); var_dump(explode(" ", $str,0)); var_dump(explode("@", $str)); var_dump(explode("@", $str,-1)); //輸出: array(3) { [0]=> string(3) "I'm" [1]=> string(1) "a" [2]=> string(7) "beauty!" } array(2) { [0]=> string(3) "I'm" [1]=> string(9) "a beauty!" } array(2) { [0]=> string(3) "I'm" [1]=> string(1) "a" } array(1) { [0]=> string(13) "I'm a beauty!" } array(1) { [0]=> string(13) "I'm a beauty!" } array(0) { }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/56963.html
標籤:PHP
下一篇:laravel5中添加自定義函式 vendor/composer/autoload_real.php on line 69
