<?
$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);
?>
$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);
?>
中国结金龙腾飞 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);
(?<=>)是什么意思
/iU中间的U代表什么意思?
|表示什么好像
echo preg_replace("/(<.+>)/iU","",$str);
这样就行
/iU中间的U代表非贪婪
echo preg_replace("/(<.+>)/iU","",$str);
=
echo strip_tags($str);但还有2001-06-07之类还没过滤,所以((?<=>)\d{4}-\d{2}-\d{2}(?=<)|<.+>)
很想认识你,我们可以交个朋友吗?
我的QQ:20777989
<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
中国企业网联合国家信息产业部共同主办“中国企业电子商务应用平台建设研讨会”将在京举行
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);
?>
何谓"负向预查"
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);
?>
$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=中国")
你可不可以实现这样的功能呢?你中不可以实现这样的功能呢?即把一个网页中的所有链接都提取出来(包括文章的标题和url,还有,只把标题中包含"中国"两上字的提取出来),你要是能办法,我就太感谢你了
中有的,像这样? <?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);
?>
都提取出来,但我对正则表达式不熟,所以我做不出来。
只要请你再帮帮忙了
($start_addr, $end_addr, $offset并不需要,可去掉)
listtitle("http://app.china.com/business/inf/srch.php?keys=中国");
看来你还是没有明白我的意思呵,急死人了。
我想做的是想把一个网页中所有的超级链接都提取出来,而不仅仅是像那样只把hrel后面的信息提取出来。
明白我的意思了吗?
你给我的文章我看过了,确实很好。listtitle当然不符合我的要求,你换个网站试试,看看他还能不能提出信息?他不通用。
listtitle("http://www.csdn.net/expert/topic/960/960831.xml?temp=.1215174");
它还能提取出我需要的信息吗?答案是不能,而你的方法却可以,但你的例子只能提取出http后面的内容,
对于xml网页就没有办法了吗?