PHP preg_replace любой текст в замен - PullRequest
2 голосов
/ 16 февраля 2012

Как заменить текст на любой текст и символы вместо?Потому что, когда я использую обратную косую черту , она плохо заменяется.

$text = 'hello replacement world';

$text = preg_replace('#replacement#ui', '28\01\12', $text);

Результат

hello 28 world

Решение для замены перед использованием шаблона

$pattern = '28\01\12';
$pattern = str_replace('\\', '\\\\\\\\', $pattern);

Это всего лишь пример, в реальной работе нужно использовать более сложный шаблон и замену будет составлять любой текст

Ответы [ 2 ]

3 голосов
/ 16 февраля 2012
$text = preg_replace('#replacement#ui', '28\\01\\12', $text);

См. Примечания к обратным слешам: http://php.net/manual/en/language.types.string.php

Если вы просто ищете простую строку для замены, вам следует вместо этого использовать str_replace().Это дешевле, чем процессор.Смотрите здесь: http://php.net/manual/en/function.str-replace.php

ОБНОВЛЕНИЕ: Дополнительная информация о escape-последовательностях: http://www.php.net/manual/en/regexp.reference.escape.php

1 голос
/ 16 февраля 2012
$text = 'hello replacement world';

$text = preg_replace('#replacement#ui', '28\\01\\12', $text);

Это происходит потому, что вы должны экранировать обратную косую черту в строке.

...