2011-02-10 2 views
1

Возможные Дублировать:
How can I convert ereg expressions to preg in PHP?замена ereg_replace

Я модернизировал PHP и теперь им получать ereg_replace устаревшие ошибки.

Я сделал некоторые поиски круглой сети и обнаружил, что я могу использовать PREG, но вместо этого не знает, как изменить этот код правильно

$scriptName = ereg_replace(
    "^".$_SERVER["DOCUMENT_ROOT"], "", 
    $_SERVER["SCRIPT_FILENAME"] 
); 
+0

Итак ... где шутка? –

+0

@Goran Не шутите здесь, ребята. Переместите его. –

+0

@ Linus: Грязный трюк, действительно. –

ответ

1

Просто добавление разделителей не будет работать, если специальные символы включены в значение $ _SERVER ["DOCUMENT_ROOT"]. Вам необходимо избегать их следующим образом:

$scriptName = preg_replace(
    "/^".preg_quote($_SERVER["DOCUMENT_ROOT"],"/")."/", 
    "", 
    $_SERVER["SCRIPT_FILENAME"] 
); 
+0

ура @ Высокий нерегулярный – fishboy1669

6

Заменить e с p.

Добавить разделитель в начало и конец этого первого аргумента. Традиционно люди используют слэш (/), но мне нравится использовать ~, так как вероятность использования этого символа в регулярном выражении меньше.

+0

№ Это не будет сделано. 'preg_replace' ожидает разделителей, тогда как' ereg_replace' не делает. Вы должны немного перефразировать этот ответ. –

+0

@Linus Rephrased. – sdleihssirhc

+0

Там вы go. +1 –