PHP采集时的问题

正则:$preg="/<divid='(,*)'>(.*)<\/div>/";preg_match_all($preg,$str,$match);echo$match[0... 正则:$preg = "/<div id='(,*)'>(.*)<\/div>/";
preg_match_all($preg,$str,$match);
echo $match[0][0];
上面是可以取到匹配的这个DIV 的
但匹配BODY时就不行,就是把 DIV改成BODY 即:$preg = "/<body>(.*)<\/body>/";
为什么?
zzs1949 - 初级经理 七级 的回答 很感谢 你的测试确实是OK的
但如果$str1 不是这么简单的就出现问题了,我吧代码给出来,你测试一下
<?php
$curl = curl_init();

// 设置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL,"http://www.cloudscn.com/staticpage/505/20091102/34.html");

// 设置header
curl_setopt($curl, CURLOPT_HEADER, 1);

// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

// 运行cURL,请求网页
$str1 = curl_exec($curl);
// 关闭URL请求
curl_close($curl);
//echo $str1;
$preg = "/<body>(.*)<\/body>/";
preg_match_all($preg,$str1,$match);
//$match[0][0] = str_replace("<","<",$match[0][0]);$match[0][0]= str_replace(">",">",$match[0][0]);//如果你需要显示HTML源代码,请把这行取消注释
echo $match[0][0];
?>
展开
 我来答
zzs1949
2009-11-02 · TA获得超过1600个赞
知道小有建树答主
回答量:1250
采纳率:80%
帮助的人:1122万
展开全部

完善了程序,更换了你的思路:第六行个别字符可能被百度知道强行转换,请以图片为准!测试OK

<? 

$url = 'http://www.baidu.com/';; 

$lines_array = file($url); 

$lines_string = implode('', $lines_array); 

eregi("<body>(.*)</body>", $lines_string, $body); 

//$body[0] = str_replace("<","&lt;",$body[0]);$body[0]= str_replace(">","&gt;",$body[0]);

//如果你需要显示HTML源代码,请把上面这行取消注释,否则,浏览器可能显示错位的解析内容

echo $body[0]; 

?>

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式