用PHP正则表达式提取页面内容

我想将http://www.kitco.cn/cn/网站左侧栏"主要金融指数"表格的“原油价格”和页面下部"主要货币黄金价格及与美元汇率"表格中的“人民币汇率”提取出来。... 我想将 http://www.kitco.cn/cn/ 网站左侧栏"主要金融指数"表格的“原油价格”和页面下部"主要货币黄金价格及与美元汇率"表格中的“人民币汇率”提取出来。提“原油价格”我是这样做的:

<?php
$theurl="http://www.kitco.cn/cn/";
if (!($contents = file_get_contents($theurl)))
{
echo 'Could not open URL';
exit;
}
$contents=preg_replace('/<.+?>/', '', $contents);

if (preg_match('/原油价格\s+\d+\.\d+\b/',$contents,$matches))
{
print "A match was found:".$matches[0];
} else {
print "A match was not found.<br />";
}
?>
可就是提不出来!!
谢谢yeahrahxephon的热情,但你的方法不也不行,因为 $contents=preg_replace('/<.+?>/', '', $contents);已经将所有的<>标签删除了,又怎么存在 "<td class=\"tableHeader\" align=\"left\">"呢,这是我的理解,不知对不对:)
-------------------------------
对,yeahrahxephon,那就是我想要的结果,但我按你的方法怎么就是不行呢?
展开
 我来答
yeahrahxephon
2009-07-25 · TA获得超过1166个赞
知道小有建树答主
回答量:1192
采纳率:0%
帮助的人:1236万
展开全部
<?php
$theurl="http://www.kitco.cn/cn/";
if (!($contents = file_get_contents($theurl)))
{
echo 'Could not open URL';
exit;
}

/*
$contents=preg_replace('/<.+?>/', '', $contents);
*/

if (preg_match("/<td class=\"tableHeader\" align=\"left\">原油价格([^^]*?)<\/tr>/u",$contents,$matches))
{
print "A match was found:".strip_tags($matches[0]);
} else {
print "A match was not found.<br />";
}
?>

试试这样
------------------------------------
呵呵,上边这段已经把你那行注释掉了,先找到唯一的一段代码,取出来你想要的以后以后,再去掉标签,你运行一下试试
运行结果:
A match was found:原油价格 68.11 +0.95
应该是你想要的结果吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
name_best
2009-08-05 · TA获得超过145个赞
知道答主
回答量:50
采纳率:0%
帮助的人:66.6万
展开全部
你的程序中的$contents=preg_replace('/<.+?>/', '', $contents);这一句的分号有问题,是中文的,改成英文的,你的source就跑通了,结果也是你想要的结果。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式