2010-11-28 2 views
6

Я начал изучать PHP. Так установлен WAMP-сервер на моем компьютере с Windows 7. Я пытаюсь следующий PHP код:Функция ereg() устарела

<?php 
$phrase = "I love PHP"; 
if (ereg("PHP", $phrase)) { 
    echo "The expression matches"; 
} 
?> 

Когда попробовал это в моем Mozilla, я получил результат:

Deprecated: Function ereg() is deprecated in C:\wamp\www\learnphp\common.php on line 3 
The expression matches 

Я думаю, что код является правильным. Я не могу понять ошибку. Может ли кто-нибудь объяснить мне, что здесь означает «Устаревший»? и как решить эту ошибку?

Моя версия php - 5.3.0. может это проблема версии?

EDIT: Я искал его и нашел что-то о файле \ file.inc в файле www. У меня нет каталога в моей папке www.

ответ

13

«Устаревший» означает, что PHP 5.3.0 больше не поддерживает эту функцию. Вы должны обрабатывать ereg() как уже не существующий.

Функция все еще существует, но только для поддержки существующих приложений, где она была использована. При написании нового кода никогда не используйте устаревшую функцию.

Вместо этого рассмотрите функцию preg_match.

+0

Спасибо за ссылку. – narayanpatra 2010-11-28 16:00:34

6

Устаревшее означает, что эта функция в конечном итоге будет удалена из PHP в будущей версии. Вы больше не должны полагаться на это в своем коде и вместо этого используйте предложенную альтернативу.

В случае РНР ereg, heed the notice in the PHP Manual:

В РНР 5.3.0, расширение регулярных выражений является устаревшим в пользу расширения PCRE. Вызов этой функции выдает уведомление E_DEPRECATED. Обратитесь к list of differences за помощью по преобразованию в PCRE.

Также см. Описание E_DEPRECATED в Руководстве по PHP.
Для всех устаревших функций в PHP5.3 см. Deprecated features in PHP 5.3.x.
Для получения более общей информации см. Wikipedia article on Deprecation in Software

+3

Это также подразумевает, что учебник, из которого вы учитесь, ужасно устарел, и вы должны найти современный. – Quentin 2010-11-28 15:38:44

-2

Это значит, что функция, которую вы используете, устарела. Вы не можете использовать эту функцию больше. Я получил ту же ошибку с PHP 5.5.6. Одним из возможных решений вашей проблемы может стать понижение вашей версии PHP, чтобы она поддерживалась.