摘要:獲取部分字符串根據(jù)字符數(shù)執(zhí)行一個多字節(jié)安全的操作。位置是從的開始位置進行計數(shù)。第一個字符的位置是。從該中提取子字符串。中要使用的最大字符數(shù)。如果省略,則使用內(nèi)部字符編碼。函數(shù)根據(jù)和參數(shù)返回中指定的部分。
mb_substr
Description(PHP 4 >= 4.0.6, PHP 5, PHP 7)
mb_substr — Get part of string
mb_substr — 獲取部分字符串
string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) // Performs a multi-byte safe substr() operation based on number of characters. Position is counted from // the beginning of str. First character"s position is 0. Second character position is 1, and so on. //根據(jù)字符數(shù)執(zhí)行一個多字節(jié)安全的 substr() 操作。 位置是從 str 的開始位置進行計數(shù)。 第一個字符的位置是 0。第二個字符的位置是 1,以此類推。Parameters str
The string to extract the substring from.
從該 string 中提取子字符串。
startIf start is non-negative, the returned string will start at the start"th position in str, counting from zero. For instance, in the string "abcdef", the character at position 0 is "a", the character at position 2 is "c", and so forth.
如果 start 不是負數(shù),返回的字符串會從 str 第 start 的位置開始,從 0 開始計數(shù)。舉個例子,字符串 "abcdef",位置 0 的字符是 "a",位置 2 的字符是 "c",以此類推。
If start is negative, the returned string will start at the start"th character from the end of str.
如果 start 是負數(shù),返回的字符串是從 str 末尾處第 start 個字符開始的。
lengthMaximum number of characters to use from str. If omitted or NULL is passed, extract all characters to the end of the string.
str 中要使用的最大字符數(shù)。如果省略了此參數(shù)或者傳入了 NULL,則會提取到字符串的尾部。
encodingThe encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.
encoding 參數(shù)為字符編碼。如果省略,則使用內(nèi)部字符編碼。
Return Valuesmb_substr() returns the portion of str specified by the start and length parameters.
mb_substr() 函數(shù)根據(jù) start 和 length 參數(shù)返回 str 中指定的部分。
Changelog5.4.8 - Passing NULL as length extracts all characters to the end of the string. Prior to this version NULL was treated the same as 0.
Examples0 length > 0*/ $mystring = mb_substr( $string, 5, 1 ); echo $mystring . PHP_EOL; // 5 $mystring = mb_substr( $string, 5, 2 ); echo $mystring . PHP_EOL; // 56 $mystring = mb_substr( $string, 10, 2 ); echo $mystring . PHP_EOL; // 你好 /** start < 0 length > 0*/ $mystring = mb_substr( $string, - 2, 2 ); echo $mystring . PHP_EOL; // 你好 echo "mb_strlen : " . mb_strlen( $string ) . PHP_EOL;//12 $mystring = mb_substr( $string, - mb_strlen( $string ), 2 ); echo $mystring . PHP_EOL; // 01 $mystring = mb_substr( $string, - 3, 2 ); echo $mystring . PHP_EOL; // 9你 /** start > 0 length < 0*/ $mystring = mb_substr( $string, 5, - 1 ); echo $mystring . PHP_EOL; // 56789你 $mystring = mb_substr( $string, 0, - mb_strlen( $string ) + 1 ); echo $mystring . PHP_EOL; // 0 $mystring = mb_substr( $string, 5, - 5 ); echo $mystring . PHP_EOL; // 56 /** start < 0 length < 0*/ $mystring = mb_substr( $string, - 10, - 1 ); echo $mystring . PHP_EOL; // 23456789你 $mystring = mb_substr( $string, - 5, - 1 ); echo $mystring . PHP_EOL; // 789你 function mb_ucfirst( $str, $enc = "utf-8" ) { return mb_strtoupper( mb_substr( $str, 0, 1, $enc ), $enc ) . mb_substr( $str, 1, mb_strlen( $str, $enc ), $enc ); } echo mb_ucfirst( "hello world 你好 中國" ) . PHP_EOL; //Hello world 你好 中國 /** * @param $string * @param string $encoding * * @return array */ function get_character_classes( $string, $encoding = "UTF-8" ) { $current_encoding = mb_internal_encoding(); mb_internal_encoding( $encoding ); $has = array(); $stringlength = mb_strlen( $string, $encoding ); for ( $i = 0; $i < $stringlength; $i ++ ) { $c = mb_substr( $string, $i, 1 ); if ( ( $c >= "0" ) && ( $c <= "9" ) ) { $has["numeric"] = "numeric"; } else if ( ( $c >= "a" ) && ( $c <= "z" ) ) { $has["alpha"] = "alpha"; $has["alphalower"] = "alphalower"; } else if ( ( $c >= "A" ) && ( $c <= "Z" ) ) { $has["alpha"] = "alpha"; $has["alphaupper"] = "alphaupper"; } else if ( ( $c == "$" ) || ( $c == "£" ) ) { $has["currency"] = "currency"; } else if ( ( $c == "." ) && ( $has["decimal"] ) ) { $has["decimals"] = "decimals"; } else if ( $c == "." ) { $has["decimal"] = "decimal"; } else if ( $c == "," ) { $has["comma"] = "comma"; } else if ( $c == "-" ) { $has["dash"] = "dash"; } else if ( $c == " " ) { $has["space"] = "space"; } else if ( $c == "/" ) { $has["slash"] = "slash"; } else if ( $c == ":" ) { $has["colon"] = "colon"; } else if ( ( $c >= " " ) && ( $c <= "~" ) ) { $has["ascii"] = "ascii"; } else { $has["binary"] = "binary"; } } mb_internal_encoding( $current_encoding ); return $has; } $string = "1234asdfA£^_{}|}~????"; foreach ( get_character_classes( $string ) as $k => $v ) { echo $k . " : " . $v . PHP_EOL; } //numeric : numeric //alpha : alpha //alphalower : alphalower //alphaupper : alphaupper //currency : currency //ascii : ascii //binary : binary文章參考
http://php.net/manual/en/func...
轉(zhuǎn)載注明出處文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/28202.html
摘要:最近遇到一個問題,太久沒有使用來對字符串進行處理根據(jù)字符數(shù)截取今天周五了今天周五天周五了了了 最近遇到一個問題,太久沒有使用substr來對字符串進行處理 mb_substr(); // 根據(jù)字符數(shù)截取 $str = 今天周五了friday; echo mb_substr($str, 0, 4); // 今天周五 echo mb_substr($str, 1, 4); // 天周...
摘要:應(yīng)用場景從數(shù)據(jù)庫讀取產(chǎn)品標題過長時,會導(dǎo)致布局混亂,我們可以使用字符串截斷函數(shù)進行截斷,用代替截斷部分。 應(yīng)用場景 從數(shù)據(jù)庫讀取產(chǎn)品標題過長時,會導(dǎo)致布局混亂,我們可以使用字符串截斷函數(shù)進行截斷,用...代替截斷部分。 函數(shù)代碼 /** * 字符截取(對中文、英文都可以進行截取) * @param string $string 字符串 * @...
摘要:我的博客運行以下代碼互聯(lián)網(wǎng)產(chǎn)品我們可能以為會得到的結(jié)果是互聯(lián)網(wǎng)產(chǎn)品,實際結(jié)果是互聯(lián)網(wǎng)產(chǎn)。所以在執(zhí)行的時候,通過字節(jié)比對,會將去掉,導(dǎo)致了最后出現(xiàn)了亂碼。 我的博客 https://mengkang.net/1039.html 運行以下代碼: $tag = 互聯(lián)網(wǎng)產(chǎn)品、; $text = rtrim($tag, 、); print_r($text); 我們可能以為會得到的結(jié)果是互聯(lián)網(wǎng)產(chǎn)品...
閱讀 1614·2021-11-16 11:45
閱讀 2544·2021-09-29 09:48
閱讀 3269·2021-09-07 10:26
閱讀 1840·2021-08-16 10:50
閱讀 1866·2019-08-30 15:44
閱讀 2698·2019-08-28 18:03
閱讀 1898·2019-08-27 10:54
閱讀 1823·2019-08-26 14:01