Это было это, спасибо!
я странная проблема. рассмотрим этот короткий код:
<?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. Любые подсказки, что может быть не так и как обойти это?