2012-08-02 65 views
0

我为php脚本寻找了dmoz列表条目的函数,不幸的是,它是使用ereg创建的,并且在脚本工作时,它每次得到“depreciated”错误用过的。所以我决定将它从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

你需要做的不仅仅是改变函数名 – 2012-08-02 19:48:20

回答

0

你忘了分隔符字符添加到preg_match版本。以下是语法documentation

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

第一个字符是分隔符,你可以使用任何你想要的,历史上Perl使用/但当图案包括大量的那些是有帮助的使用别的东西。

+0

感谢,这工作,我不能相信这是这么简单。 – 2012-08-02 19:50:36

0

试试这个:

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