Home >Backend Development >PHP Tutorial >php截取中文字符问题

php截取中文字符问题

WBOY
WBOYOriginal
2016-06-23 14:21:29790browse

北京市崇文区联通ADSL

我想从市开始,截取前面的两个中文字符,该如何写?


回复讨论(解决方案)

echo strtok('北京市崇文区联通ADSL', '市'); //北京

echo strtok('广东省深圳市长城宽带', '市'); //广东

版主,如过我前面是这个就成广东了,我是想截取从市开头的前面两个中文字符。

echo strtok('北京市崇文区联通ADSL', '市'); //北京

版主还有什么办法吗?

$s = '广东省深圳市长城宽带';preg_match_all('/(.+?)(省|市|$)/', $s, $r);$r = array_combine($r[2], $r[1]);print_r($r);
Array
(
    [省] => 广东
    [市] => 深圳
    [] => 长城宽带
)

定义 $a = '中国人民';
如果你的服务器支持多字节字符串函数, 使用 
$b = mb_substr($a, 0, 2, 'utf-8');
如果不支持, 使用
$b = implode('', array_slice(preg_split('//u', $a), 0, 3));

最后输出$b为 "中国"。

谢谢版主。

定义 $a = '中国人民';
如果你的服务器支持多字节字符串函数, 使用 
$b = mb_substr($a, 0, 2, 'utf-8');
如果不支持, 使用
$b = implode('', array_slice(preg_split('//u', $a), 0, 3));

最后输出$b为 "中国"。
如果中国前面还有几个字符串呢?我要截取民字前面的两个中文字符?

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn