Я получаю строку через file_get_contents($file)
.PHP preg_match/replace не работает над символом «ndash» после file_get_contents
Почему я не могу заменить «-» (не «минус», а HTML –
) на функцию preg_replace PHP? preg_match также не работает:
например.
Выход $file
является «бла-бла».
$str = file_get_contents($file); $str = preg_replace('/–/', 'test', $str); echo $str;
blah test blah
должен вернуться, но возвращает blah – blah
.
Сыворотка такова, и как я могу заменить ndash?
Благодарим за помощь!
Try ''/\ р {Pd}/u'' первым. Если это не сработает, вероятно, что символ присутствует в строке в качестве объекта, и перед преобразованием символа в объект необходимо запустить 'preg_replace', или вам нужно использовать' html_entity_decode' перед заменой. Например. 'preg_replace ('/ - /', 'test', html_entity_decode ($ str))' –
У меня нет абсолютно никакой проблемы с этим (кроме очевидной синтаксической ошибки в вашей кодовой строке). Скорее всего, вы не перегружали свои функции preg для работы в многобайтовом режиме. – arkascha
Я пробовал свой код с помощью онлайн-редактора php, и он отлично работал http://sandbox.onlinephpfunctions.com/code/7e5bbced117493fc6a9282444197360a1ae75dde – Hearner