【发布时间】:2011-12-14 20:54:30
【问题描述】:
我正在尝试创建一个 php 脚本,该脚本将从该网页 http://forums.moneysavingexpert.com/forumdisplay.php?f=36 检索 WOW 因子编号(右侧)并将它们存储在变量/数组中。
我查看了页面的源代码,值(整数)出现在此代码“<div style="padding: 12px 0px 0px 0px;"><strong>”之后
我目前正在尝试使用 preg_match 来检索 1 个值(在我开始检索多个值之前),但是我没有运气。当我执行 var_dump 时,我的数组中没有存储任何内容。 另外 - 我不确定是否要转义上面字符串中的 "s。如果我这样做了,那么 var_dump 会打印出来
数组(0) { }
如果我不这样做,则打印出 var_dump
空
我使用的代码如下:
<html>
<head>
<title>
MSE Value Extractor
</title>
</head>
<body>
<?php
echo "Welcome to MSE deal finder!\n";
$content = file_get_contents('http://forums.moneysavingexpert.com/forumdisplay.php?f=36');
preg_match('/<div style=\"padding: 12px 0px 0px 0px;\"><strong>(.)</', $content, $match);
var_dump($match);
$value = $match[1];
echo "Value obtained is $value \n";
?>
</body>
</html>
如果有人能评论我哪里出错了,我们将不胜感激。我对php不是很熟悉。
提前致谢
【问题讨论】:
-
<div ...>和<strong>之间有whitespace。 -
easydomparser 可以让您获取页面上的任何数据,他们已经为您完成了困难的部分,您只需将甜蜜的数据拉入您的应用程序。
-
作为 [regex] 匹配的替代方法(您似乎太缺乏经验),您可以使用QueryPath 和一个简单的
htmlqp($url)->find("div > strong")->text();。虽然通过style=属性匹配同样模棱两可,所以你必须希望不存在其他 div/strong 对。 -
我认为你应该先阅读this。
标签: php