#php #regex #preg-replace
#php #регулярное выражение #preg-заменить
Вопрос:
мне нужно преобразовать nubmer в строку (разделив каждые 3 числа на пробел, т.е 20000 => 20 000, 1400000 => 1 400 000)
мой код:
$cena = '20000';
$cena = preg_replace('/D /g', '', $cena);
$cena = preg_replace('/d(?=(?:d{3}) (?!d))/g', '$amp; ', $cena);
это приводит к:
Warning: preg_replace() [function.preg-replace]: Unknown modifier 'g' in myfile.php on line xxx
что не так?
Комментарии:
1. не используйте preg_replace, используйте number_format()
2. @Dagon один момент, чтобы попробовать
Ответ №1:
$number=1400000;
$format = number_format($number, 0, '', ' ');
echo $format; //1 400 000
Ответ №2:
Я предполагаю, что вы пытаетесь выполнить глобальную замену с использованием g
модификатора. preg_replace не поддерживает g
модификатор, отсюда и ошибка, которую вы получаете.
Вместо этого preg_replace принимает необязательный limit
параметр, который определяет максимальное количество замен, которые будут выполнены. По умолчанию значение равно -1, что означает неограниченный. Другими словами, он уже делает то, что вы пытаетесь сделать.
Со страницы руководства:
mixed preg_replace ( mixed $pattern , mixed $replacement ,
mixed $subject [, int $limit = -1 [, int amp;$count ]] )