Php preg_split добавить пустое поле в результат

Я пытаюсь разделить координату 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


person Skyfox    schedule 29.04.2018    source источник
comment
См. stackoverflow.com/questions/48534863/, оно использует [^\dNSEW.]+   -  person user1086500    schedule 29.04.2018
comment
Интересен и этот подход. Спасибо   -  person Skyfox    schedule 29.04.2018


Ответы (1)


° - это два байта 0xC2 0xB0, и вы не находитесь в "режиме" Unicode. Поэтому он разбивается на 0xC2 и снова на 0xB0 с пустым элементом в середине.

Включите режим Unicode с модификатором u.

$long = "13°47'52.544\"E";
$res = preg_split("/[°'\"]/u", $long);
person Niet the Dark Absol    schedule 29.04.2018