用eregi进行匹配,然后把匹配的数据放入数组。可是为什么有的时候信息在$regs[0]中而有的时候$regs[0]为空,信息在$regs[1]中?初学者很困惑

解决方案 »

  1.   

    用preg_match吧,ereg系列函数废弃中
    另外贴出你的代码
      

  2.   

    就是我在抓取一个页面的内容
     $url = "http://www.autowo.com/html/4/category-catid-4.html";
     $fp = @fopen($url,r)or die("超时");
     $fcontents = file_get_contents($url);
     //echo $fcontents;
     eregi("<ul class=\"msgtitlelist linelist articlelist\">(.*)</ul>",$fcontents,$rg);
     eregi("<title>(.*)</title>",$fcontents,$title);
     //print_r ($rg);
     echo $rg[0];
    现在信息是在$rg[0]中的,但是换一个URL信息可能就存放在$rg[1]中
      

  3.   

    应该不会出现这种情况,你把结果出现在$rg[1]中的url贴出来对比一下
      

  4.   

    是另一个网站的,具体的URL我已经忘记了。另外请问下如果把eregi换成perg_match的话"<ul class=\"msgtitlelist linelist articlelist\">(.*)</ul>"这段要怎么写,我改成"/<ul class=\"msgtitlelist linelist articlelist\">(.*)<\/ul>/"取不到信息。
      

  5.   

    preg_match('/<ul class=\"msgtitlelist linelist articlelist\">(.*)</ul>/im',$fcontents,$rg);
      

  6.   

    有错误信息哦  Warning: preg_match() [function.preg-match]: Unknown modifier 'l' 如果把后面的</url>改成<\/url>没错误了可还是取不到信息啊
      

  7.   

    preg_match('/<ul class=\"msgtitlelist linelist articlelist\">(.*)<\/ul>/im',$fcontents,$rg);
    你要匹配的是<url>还是<ul>啊?
      

  8.   

    不是要匹配<url>,是药匹配<ul>中的信息
    preg_match('/<ul class=\"msgtitlelist linelist articlelist\">(.*)<\/ul>/im',$fcontents,$rg);取不到信息的