带有preg_match的file_get_contents会收到错误

时间:2014-06-08 11:28:50

标签: php preg-match file-get-contents

我正在尝试获取网站的一些数据(taste.com.au),但我没有成功获取没有类或ID的元素的数据。

这是我的代码:

$url = "http://www.taste.com.au/recipes/15281/asparagus+with+sun+dried+tomatoes+and+basil";
$html = file_get_contents($url);

这个有效:

preg_match("/<h1 itemprop=\"name\">(.*)<\/h1>/i", $html, $title);
echo $title;

html在哪里:

<td class="prepTime">
    <em itemprop="prepTime">0:10</em> //Data i want
    <p>To Prep</p>
</td>

但我不知道如何获取这样的代码数据:

<td class="cookTime">
    <em>0:15</em> //Data i want
    <p itemprop="cookTime" datetime="PT15M">To Cook</p>
</td>

**更新:**我仍然需要帮助,我已经尝试在其后添加标签的开头,仍然无法正常工作。

1 个答案:

答案 0 :(得分:1)

或者,您可能希望使用DOMXPath遍历并找到所需的值。考虑这个例子:

$url = "http://www.taste.com.au/recipes/15281/asparagus+with+sun+dried+tomatoes+and+basil";
$html = file_get_contents($url);
$dom = new DOMDocument();
@$dom->loadHTML($html);

$finder = new DomXPath($dom);
$values = $finder->query("//tr[@class='info-row']/td[@class='cookTime']/em");

foreach($values as $value) {
    echo $value->nodeValue; // 0:15
}