摘要:获取部分字符串根据字符数执行一个多字节安全的操作。位置是从的开始位置进行计数。第一个字符的位置是。从该中提取子字符串。中要使用的最大字符数。如果省略,则使用内部字符编码。函数根据和参数返回中指定的部分。
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. //根据字符数执行一个多字节安全的 substr() 操作。 位置是从 str 的开始位置进行计数。 第一个字符的位置是 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 不是负数,返回的字符串会从 str 第 start 的位置开始,从 0 开始计数。举个例子,字符串 "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 是负数,返回的字符串是从 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 中要使用的最大字符数。如果省略了此参数或者传入了 NULL,则会提取到字符串的尾部。
encodingThe encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.
encoding 参数为字符编码。如果省略,则使用内部字符编码。
Return Valuesmb_substr() returns the portion of str specified by the start and length parameters.
mb_substr() 函数根据 start 和 length 参数返回 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...
转载注明出处文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/28202.html
摘要:最近遇到一个问题,太久没有使用来对字符串进行处理根据字符数截取今天周五了今天周五天周五了了了 最近遇到一个问题,太久没有使用substr来对字符串进行处理 mb_substr(); // 根据字符数截取 $str = 今天周五了friday; echo mb_substr($str, 0, 4); // 今天周五 echo mb_substr($str, 1, 4); // 天周...
摘要:应用场景从数据库读取产品标题过长时,会导致布局混乱,我们可以使用字符串截断函数进行截断,用代替截断部分。 应用场景 从数据库读取产品标题过长时,会导致布局混乱,我们可以使用字符串截断函数进行截断,用...代替截断部分。 函数代码 /** * 字符截取(对中文、英文都可以进行截取) * @param string $string 字符串 * @...
摘要:我的博客运行以下代码互联网产品我们可能以为会得到的结果是互联网产品,实际结果是互联网产。所以在执行的时候,通过字节比对,会将去掉,导致了最后出现了乱码。 我的博客 https://mengkang.net/1039.html 运行以下代码: $tag = 互联网产品、; $text = rtrim($tag, 、); print_r($text); 我们可能以为会得到的结果是互联网产品...
阅读 1519·2021-11-16 11:45
阅读 2451·2021-09-29 09:48
阅读 2952·2021-09-07 10:26
阅读 1804·2021-08-16 10:50
阅读 1811·2019-08-30 15:44
阅读 2664·2019-08-28 18:03
阅读 1869·2019-08-27 10:54
阅读 1774·2019-08-26 14:01