2012-08-02 3 views
0

Я сделал функцию для php-скрипта, который ищет записи из списка dmoz, к сожалению, он был создан с использованием ereg, и, хотя скрипт работает, он генерирует «обесцененные» ошибки каждый раз, когда он получает используемый. Поэтому я решил преобразовать его из ereg в preg, который по документации должен быть preg_match, проблема в том, что preg всегда возвращает false, когда значение есть. Вот код:Preg_Match не возвращает значение, но ereg делает

  function getDmoz ($url) { 

     $url = "http://www.dmoz.org/search?q=".$url; 
     $data = file_get_contents($url); 
     if (ereg('<strong>Open Directory Sites</strong>', $data)) { 

      $value = YES; 

     } else { 

      $value = NO; 

     } 

     return $value; 

    } 

Это рабочий код. преобразовать Я считаю, что он должен идти, как этот

  function getDmoz ($url) { 

     $url = "http://www.dmoz.org/search?q=".$url; 
     $data = file_get_contents($url); 
     if (preg_match('<strong>Open Directory Sites</strong>', $data)) { 

      $value = YES; 

     } else { 

      $value = NO; 

     } 

     return $value; 

    } 

, но по какой-то причине, что всегда возвращает «нет», где EREG бы найти его успешно. Может ли кто-нибудь указать, что здесь отсутствует?

Заранее спасибо

+0

вам нужно сделать больше, чем просто изменить имя функции –

ответ

0

Вы забыли добавить разделители символов версии preg_match. Вот синтаксис documentation.

preg_match('!<strong>Open Directory Sites</strong>!', $data) 

Первый символ является разделителем, вы можете использовать все, что вы хотите, исторически Perl использует / но когда шаблон включает в себя много тех, полезно использовать что-то другое.

+0

спасибо, что работал и я не могу поверить, что это было так просто. –

0

Попробуйте это:

if (preg_match('/<strong>Open Directory Sites<\/strong>/', $data)) {