Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php截取中文字符问题

php截取中文字符问题

WBOY
WBOYasal
2016-06-23 14:21:29770semak imbas

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

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn