Php preg_split 在结果中添加一个空字段

Php preg_split add an empty field on result

我尝试使用以下函数拆分 GPS 坐标:

$long = "13°47'52.544\"E";
$res = preg_split("/[°'\"]/", $long);

但结果是:

array(0=>13, 1=>, 2=>47, 3=>52.544, 4=>E)

为什么将第 1 项添加到结果中?

此处示例:http://www.phpliveregex.com/p/nPv

° 是两个字节 0xC2 0xB0 而你不是 Unicode "mode"。因此,它在 0xC2 上拆分,在 0xB0 上再次拆分,中间有一个空项。

使用 u 修饰符启用 Unicode 模式。

$long = "13°47'52.544\"E";
$res = preg_split("/[°'\"]/u", $long);