用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,那就是我想要的结果,但我按你的方法怎么就是不行呢? 展开
<?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,那就是我想要的结果,但我按你的方法怎么就是不行呢? 展开
展开全部
<?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
应该是你想要的结果吧?
$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
应该是你想要的结果吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询