Intereting Posts
Исключение: Сериализация «Закрытие» не допускается Как отображать дату как формат iso 8601 с помощью PHP Не удается передать массив для публикации в PHP Как получить код статуса HTTP для удаленного домена в php? PHP-код работает только при закрытии коротких открытых тегов создание обратных ссылок на страницы в Codeigniter Контроль доступа XMLHttpRequest Разрешить Происхождение, когда URL-адрес не завершен как восстановить резервную копию файла mysql в php Как я могу отправить данные с веб-страницы на последовательный порт? Как добавить ограничение на запрос обновления в Zend Framework? php – загрузить файл csv непосредственно в память, желательно без cURL Пример объектно-ориентированного класса php Как настроить расширения доктрины в Zend Framework 2? 403 Запрещено на символическую ссылку в веб-корне Как я могу определить уникальный URL-адрес для пользователя без использования их идентификатора?

preg_replace сопоставить целое слово в арабском

я пытаюсь сделать

$text = preg_replace('/\bمرحبا بك\b/', 'NEW', $text); 

но его не работает, я думаю, что эта функция не поддерживает арабский

http://php.net/manual/en/function.preg-replace.php

Если ваш текст находится в кодировке UTF-8, добавьте модификатор 'u' к вашему шаблону regex для поддержки Unicode.

 $text = preg_replace('/\bمرحبا بك\b/u', 'NEW', $text); 

Не добавляйте a \b в конец вашего регулярного выражения. Соответствие должно отлично работать при изменении кода:

  $text = preg_replace('/\bمرحبا بك/', 'NEW', $text); 

Вы также не можете использовать \b в конце, так как в словах, которые вы пытаетесь сопоставить, есть пробел. \b не соответствует чему-либо, если в части, которую вы пытаетесь сопоставить, есть символ без слов.

Просто возьмите str_replace . Нет необходимости в регулярном выражении.

 $text = 'hello bمرحبا بك world'; echo str_replace('bمرحبا بك', 'NEW', $text);