博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP之mb_substr使用
阅读量:5825 次
发布时间:2019-06-18

本文共 4836 字,大约阅读时间需要 16 分钟。

mb_substr

  • (PHP 4 >= 4.0.6, PHP 5, PHP 7)
  • mb_substr — Get part of string
  • mb_substr — 获取部分字符串

Description

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 中提取子字符串。

start

  • If 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 个字符开始的。

length

  • Maximum number of characters to use from str. If omitted or NULL is passed, extract all characters to the end of the string.
  • str 中要使用的最大字符数。如果省略了此参数或者传入了 NULL,则会提取到字符串的尾部。

encoding

  • The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.
  • encoding 参数为字符编码。如果省略,则使用内部字符编码。

Return Values

  • mb_substr() returns the portion of str specified by the start and length parameters.
  • mb_substr() 函数根据 start 和 length 参数返回 str 中指定的部分。

Changelog

  • 5.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.

Examples

0 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

文章参考

转载注明出处

你可能感兴趣的文章
CentOS 7 yum 安装php5.6
查看>>
我的友情链接
查看>>
VSCode - 笔记
查看>>
我的友情链接
查看>>
redis geo 地理位置系应用战案例
查看>>
&lt;备份&gt;10.5yum
查看>>
IPv6单播、组播、泛播地址详解(四)
查看>>
Office 365之OneDrive for Business开启匿名共享
查看>>
系统集成项目管理工程师---教授讲解
查看>>
Python自动化开发学习8
查看>>
Python自动化开发学习-Scrapy
查看>>
XenServer安装Linux虚拟机系统如何显示图形界面
查看>>
十分详细的DHCP服务工作原理剖析
查看>>
解决WINDOWS7远程桌面到WINDOWS SERVER2003太慢的故障
查看>>
nginx加ssl模块及添加ssl功能
查看>>
学大联姻360:一场盛宴两种可能
查看>>
linux-who
查看>>
Linux下使用CUPS提供打印服务
查看>>
Linux简介及基本操作V1.0
查看>>
KVM脚本批量添加删除虚拟机
查看>>