Вам может потребоваться избежать обратной косой черты:
$string = ereg_replace("<em\\b[^>]*>(.*?)</em>","\\1",$string);
Это потому, что \b
в строке PHP означает нечто отличное от \b
в регулярном выражении. Использование \\
в строке PHP проходит через одну обратную косую черту до ereg_replace()
. Это та же самая причина, по которой вам нужно использовать двойную обратную косую черту в строке замены "\\1"
.
В зависимости от вашего приложения вы также можете рассмотреть возможность того, что ваш ввод $string
не содержит каких-либо тегов <em>
. В этом случае приведенные выше операторы приведут к пустой строке, которая, вероятно, не соответствует вашим намерениям.