<?
 $str='<tr><td><a href="shw.php?infid=16727501" target=_blank> 
            中国结金龙腾飞 2002-03-08 18*40cm 结艺坊www.myknots.com</a></td>
          <td nowrap><font color=gray>2002-03-08</font></td>
        </tr>
         
        <tr> 
          <td><a href="shw.php?infid=16735777" target=_blank>中国企业网联合国家信息产业部共同主办“中国企业电子商务应用平台建设研讨会”将在京举行</a></td><td nowrap><font color=gray>2001-06-07</font></td>
        </tr>';
 echo preg_replace("/((?<=>)\d{4}-\d{2}-\d{2}(?=<)|<.+>)/iU","",$str);
?>

解决方案 »

  1.   

    $str='<tr><td><a href="shw.php?infid=16727501" target=_blank> 
                中国结金龙腾飞 2002-03-08 18*40cm 结艺坊www.myknots.com</a></td>
              <td nowrap><font color=gray>2002-03-08</font></td>
            </tr>
             
            <tr> 
              <td><a href="shw.php?infid=16735777" target=_blank>中国企业网联合国家信息产业部共同主办“中国企业电子商务应用平台建设研讨会”将在京举行</a></td><td nowrap><font color=gray>2001-06-07</font></td>
            </tr>';
    echo strip_tags($str);
      

  2.   

    秋水能否解释一下:
    (?<=>)是什么意思
    /iU中间的U代表什么意思?
    |表示什么好像
     echo preg_replace("/(<.+>)/iU","",$str);
    这样就行
      

  3.   

    (?<=>)是负向预查
    /iU中间的U代表非贪婪
    echo preg_replace("/(<.+>)/iU","",$str);
    =
    echo strip_tags($str);但还有2001-06-07之类还没过滤,所以((?<=>)\d{4}-\d{2}-\d{2}(?=<)|<.+>)
      

  4.   

    To qiushuiwuhen(秋水无恨)
    很想认识你,我们可以交个朋友吗?
    我的QQ:20777989
      

  5.   

    <HTML><HEAD><TITLE>中华网-中国商贸-供求信息</TITLE>
    <META content="text/html; charset=gb2312" http-equiv=Content-Type>
    </head>
    <body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" text="#02029e" link="#02029e">
     <table width="95" border="0" cellspacing="0" cellpadding="0" align="center">
              <tr valign="top"> 
                <td class=text> <br>
    ·<a href="http://business.china.com/zh_cn/topic/art/" target="_blank">拍卖珍品集</a> 
    <br>
    ·<a href="http://business.china.com/zh_cn/topic/fashion/" target="_blank">梦幻霓裳集<br>
    </a> ·<a href="http://auto.china.com/zh_cn/" target="_blank">汽车世界 </a>
                </td>
              </tr>
            </table>
    <table width="676" border="0" cellspacing="0" cellpadding="0" align="center" class="text1">  <tr valign="bottom">     <td width="52" height="25" background="../inc/images/hu.gif">       <div align="center"><a href="http://www.china.com/zh_cn/"><font color="#000000" class="text1">主页</font></a></div>    </td></tr></table>
      <table width=598 border=1 cellspacing=0 cellpadding=2 align=center bordercolor=#EEEEEE bordercolordark=white>
             
            <tr> 
              <td><font color="#0099FF">供货</font><a href="shw.php?infid=16727501" target=_blank> 
                中国结金龙腾飞 18*40cm 结艺坊www.myknots.com</a>(<font color=gray>结艺坊www.myknots.com</font>)</td>
              <td nowrap><font color=gray>2002-03-08</font></td>
            </tr>
             
            <tr> 
              <td><font color="#CC33CC">其他</font><a href="shw.php?infid=16735777" target=_blank> 
                中国企业网联合国家信息产业部共同主办“中国企业电子商务应用平台建设研讨会”将在京举行</a>(<font color=gray>刘晨亮</font>)</td>
              <td nowrap><font color=gray>2001-06-07</font></td>
            </tr></table></body></html>如果是这样的话,qiushuiwuhen(秋水无恨) ,你还能把我要的信息提取出来吗?
    即只显示出
    中国结金龙腾飞 18*40cm 结艺坊www.myknots.com
    中国企业网联合国家信息产业部共同主办“中国企业电子商务应用平台建设研讨会”将在京举行
      

  6.   

    <?php
    function listtitle( $url, $start_addr, $end_addr, $offset ) {
      $txt=file($url);
      for( $i = $start_addr; $i <= $end_addr; $i = $i + $offset ) {
        if( trim($txt[$i]) == "<tr>" && trim($txt[$i+4]) == "</tr>" ) {
          echo trim(preg_replace("/((?<=>)\d{4}-\d{2}-\d{2}(?=<)|<.+>)/iU","",$txt[$i+2].$txt[$i+3].$txt[$i+4]))."<br>";
        }
      }
    }
    listtitle("http://app.china.com/business/inf/srch.php?keys=中国",345,463,6);
    ?>
      

  7.   

    To phpteam(George) 谢谢。但我现在想用正则表达式做,如果qiushuiwuhen(秋水无恨)仍然实现我要的功能,我就可以借此比较出正则表达式的作用,并实现我想要的功能了。
      

  8.   

    csdn上面没有人知道秋水无痕的联系方式秋水:
    何谓"负向预查"
      

  9.   

    参见 http://www.csdn.net/Develop/read_article.asp?id=13836 <?php
    function listtitle( $url, $start_addr, $end_addr, $offset ) {
      $fp = fopen($url, "r" );while(!feof($fp))$contents.=fread($fp,1024);fclose($fp);
      $pattern="|<a href=\"shw.php\?infid=\d+\" target=_blank>\s+?(.+)</a>|U";
      preg_match_all($pattern,$contents, $regArr, PREG_SET_ORDER);
      for($i=0;$i<count($regArr);$i++){
        echo $regArr[$i][1]."<br>";
      }
    }
    listtitle("http://app.china.com/business/inf/srch.php?keys=中国",345,463,6);
    ?>
      

  10.   

    $start_addr, $end_addr, $offset并不需要,可去掉function listtitle( $url) {
     $fp = fopen($url, "r" );while(!feof($fp))$contents.=fread($fp,1024);fclose($fp);
      $pattern="|<a href=\"shw.php\?infid=\d+\" target=_blank>\s+?(.+)</a>|U";
      preg_match_all($pattern,$contents, $regArr, PREG_SET_ORDER);
      for($i=0;$i<count($regArr);$i++){
        echo $regArr[$i][1]."<br>";
      }
    }listtitle("http://app.china.com/business/inf/srch.php?keys=中国")
      

  11.   

    旃谢你,qiushuiwuhen(秋水无恨) 
    你可不可以实现这样的功能呢?你中不可以实现这样的功能呢?即把一个网页中的所有链接都提取出来(包括文章的标题和url,还有,只把标题中包含"中国"两上字的提取出来),你要是能办法,我就太感谢你了
      

  12.   

    http://www.csdn.net/Develop/read_article.asp?id=13836
    中有的,像这样? <?php
    function listtitle( $url, $start_addr, $end_addr, $offset ) {
      $fp = fopen($url, "r" );while(!feof($fp))$contents.=fread($fp,1024);fclose($fp);
      $pattern="|<a href=\"(shw.php\?infid=\d+)\" target=_blank>\s+?(.+)</a>|U";
      preg_match_all($pattern,$contents, $regArr, PREG_SET_ORDER);
      for($i=0;$i<count($regArr);$i++){
        echo $regArr[$i][1]."<br>";
        echo $regArr[$i][2]."<br>";
      }
    }
    listtitle("http://app.china.com/business/inf/srch.php?keys=中国",345,463,6);
    ?>
      

  13.   

    我知道, phpteam(George的方法虽然简单,却并不通用,如果换了一个网站,那 可能提不出信息了。也就是说,我想启蒙历整个页面,把<a href=>*****</a>
    都提取出来,但我对正则表达式不熟,所以我做不出来。
    只要请你再帮帮忙了
      

  14.   

    最近的listtitle不符合你的要求?
    ($start_addr, $end_addr, $offset并不需要,可去掉)
    listtitle("http://app.china.com/business/inf/srch.php?keys=中国");
      

  15.   

    我想遍历整个页面,把<a href=>*****</a>都提取出来,参看http://www.csdn.net/Develop/read_article.asp?id=13836
      

  16.   

    to  qiushuiwuhen(秋水无恨) 
    看来你还是没有明白我的意思呵,急死人了。
    我想做的是想把一个网页中所有的超级链接都提取出来,而不仅仅是像那样只把hrel后面的信息提取出来。
    明白我的意思了吗?
    你给我的文章我看过了,确实很好。listtitle当然不符合我的要求,你换个网站试试,看看他还能不能提出信息?他不通用。
      

  17.   

    比如现在我用
    listtitle("http://www.csdn.net/expert/topic/960/960831.xml?temp=.1215174");
    它还能提取出我需要的信息吗?答案是不能,而你的方法却可以,但你的例子只能提取出http后面的内容,
      

  18.   

    .xml中的内容并没有<a href=,不信你可以查看源代码但你的例子只能提取出http后面的内容,所以那文章就判断了是否含有http://(没有则加上网站相对路径)和/(没有则加上网站绝对路径)
      

  19.   

    对,.xml中确实没有<a href=,XML中是&alta href=
    对于xml网页就没有办法了吗?