Это было это, спасибо!

я странная проблема. рассмотрим этот короткий код:

<?php
$reg =  '/(?<!\pL)(test)(?!\pL)/u';
$text='This is a test text';
$replace = 'test_replaced';

$newtext = preg_replace($reg, $replace, $text);

echo "Error: ".preg_last_error()."\nResult: ".$newtext."\n";

?>

На некоторых серверах сопоставление границ UTF8 не работает. я получил

Error: 0
Result: 

На большинстве серверов все работает нормально:

Error: 0
Result: This is a test_replaced text

Кажется, есть проблема с границей слов, как при использовании\b вместо этого код работает.

Оба сервера используют php 5.2.13. Любые подсказки, что может быть не так и как обойти это?

 bobble bubble10 дек. 2016 г., 11:41
Это было, вероятно, связано сошибка, исправленная в PHP 5.3.4
 SilentGhost24 янв. 2011 г., 13:31
И почему ты не используешь\b за это? Сколько у вас серверов? Два или больше?
 freediver24 янв. 2011 г., 17:17
\ b не работает с UTF8. У меня проблема на двух серверах (из сотен)

Ответы на вопрос(1)

Решение Вопроса

Вот кажется, предполагает, что PCRE должен быть скомпилирован с--enable-unicode-properties.

 freediver26 янв. 2011 г., 08:45
Это было это, спасибо!
 freediver24 янв. 2011 г., 17:19
Спасибо попробую

Ваш ответ на вопрос