2009-09-15 3 views
1

Я видел решение для не имеющей переделки использования функции Ерегла для PHP 5.3: Good alternative to eregi() in PHPereg_replace для PHP 5.3 +?

Он использует if(!function_exists....

Есть ли функция, которая может быть использована таким образом для ereg_replace?

ereg_replace("<!--.*-->","",$str); 

ereg_replace("[^a-z,A-Z]", "", $str); 
+0

Btw первый пример предназначен для отображения как ereg_replace ("", "", $ str); – 2009-09-15 18:26:55

ответ

12

Используйте PCRE functionpreg_replace вместо:

preg_replace("/<!--.*-->/", "", $str); 
preg_replace("/[^a-z,A-Z]/", "", $str); 

POSIX ERE является (почти) полное подмножество PCRE. Таким образом, вы можете использовать (почти) любое регулярное выражение POSIX ERE с реализацией PREG. См. Regular Expression Flavor Comparison для более подробной информации.

+0

Я полностью агре ... preg заменил функции ereg давным-давно – TravisO

+0

Да, команды preg были быстрее, чем команды ereg в течение некоторого времени. – Powerlord

0

Эта строка теперь создает исключение, я подозреваю, что мой веб-узел обновил его установку PHP.

$vq = ereg_replace('[[:space:]]+', ' ', trim($vq)); 

Если я просто переключиться на preg_replace он жалуется на отстающей +

Я надеялся быстро исправить, это из примера, я думаю, от IBM.

+0

Это похоже на другой вопрос для меня (и, следовательно, не должен быть ответом), но ... использование preg _... и ereg _... отличается тем, что функции preg_ хотят, чтобы разделитель был обернут вокруг регулярного выражения. Мы часто используем '/', но это не обязательно так. (Посмотрите, как выражения в ответе Gumbo отличаются от оригиналов в вопросе.) – grossvogel

+0

Это похоже на трюк, спасибо. – Muskie