2012-06-26 5 views
-1

У меня есть код для поиска домена, но он работает, но существует устаревшая область.eregi() возвращает устаревшее

Вот мой код:


    if (eregi('^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?$',$domain) != 1){ 
     $error = 'Invalid domain (Letters, numbers and hypens only) ('.$domain.')'; 
     return false; 
    } 

Как исправить ошибку? Просьба помочь!

+0

вы можете использовать 'preg_match'. – Leri

+0

Ошибка означает, что функции ereg больше не поддерживаются и могут быть полностью удалены из PHP в будущей версии. Это предупреждает вас о том, что вам необходимо в будущем защищать свой код от этой возможности. Если вы посмотрите на страницу руководства PHP для eregi, он перечислит некоторые рекомендации о том, как это сделать. – GordonM

ответ

1

изменение этого:

if (eregi('^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?$',$domain) != 1){ 
    $error = 'Invalid domain (Letters, numbers and hypens only) ('.$domain.')'; 
    return false; 
} 

к этому:

if (preg_match('/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?$/i',$domain) != 1){ 
    $error = 'Invalid domain (Letters, numbers and hypens only) ('.$domain.')'; 
    return false; 
} 
+0

Yeaj, это работает, но я пришел к другой ошибке: if (eregi ($ this-> ext ['.'. $ Domain_domain] [1], $ f_result)) { \t \t \t \t return true; \t \t \t}; Я попытался заменить eregi на preg_match, но он говорит: preg_match() [function.preg-match]: разделитель не должен быть буквенно-цифровым или обратным слэшем – leojarina

+0

, если вы избежите/with \ /? –

+0

как? Я не очень хорошо знаком с этим типом функции. – leojarina

1

Вместо eregi вы должны использовать preg_match

+0

Есть ли у них одинаковый синтаксис? – leojarina

+0

проверить ссылку, есть еще примеры. –

+2

Когда вы сомневаетесь, вы всегда можете посмотреть в [Руководстве] (http://www.php.net/manual/en/funcref.php). Если вы искали [eregi()] (http://php.net/manual/en/function.eregi.php), вы бы увидели, что использовать вместо этого, и в конце концов, почему оно устарело. Сохраняет ** LOT ** времени и других ресурсов – Havelock

3

Примечание:

В РНР 5.3. 0, th Расширение регулярного выражения устарело в пользу PCRE extension. Вызов этой функции выдает уведомление E_DEPRECATED. См. list of differences для получения справки по преобразованию в PCRE.

http://php.net/eregi