preg_split 函数的一个疑问?
<?php
// preg_split
$str = "i中国节";
/**
* PREG_SPLIT_NO_EMPTY 返回非空部分
* PREG_SPLIT_OFFSET_CAPTURE 显示每一部分的偏移量
*
* 模式修正符 u 的作用是将字符串看作是 utf-8 的, 既然如此, 那么偏移量应该是下面的:
* i 0, 中 1, 国 2, 节 3
* 但是 preg_split 返回‘国’的偏移量确是 4, ‘节’的是 7, ??????
*/
$arr = preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE);
echo "<pre>";
print_r($arr);
/*
result:
Array
(
[0] => Array
(
[0] => i
[1] => 0
)
[1] => Array
(
[0] => 中
[1] => 1
)
[2] => Array
(
[0] => 国
[1] => 4
)
[3] => Array
(
[0] => 节
[1] => 7
)
)
*/
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。