Heim  >  Artikel  >  Backend-Entwicklung  >  php截取中文字符问题

php截取中文字符问题

WBOY
WBOYOriginal
2016-06-23 14:21:29768Durchsuche

北京市崇文区联通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为 "中国"。
如果中国前面还有几个字符串呢?我要截取民字前面的两个中文字符?

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn