如何使用PHP + Regex从这个html代码中获取“85 mph”? 我无法想出正确的正则表达式 这是代码 http://pastebin.com/ffRH9K9Q
<td align="left">Los Angeles</td>
</tr>
<tr>
<td align="left">Wind Speed:</td>
<td align="left">85 mph</td>
</tr>
<tr>
<td align="left">Snow Load:</td>
<td align="left">0 psf</td>
(简化示例)
答案 0 :(得分:2)
你已经听说过没有使用正则表达式,所以我不会谈论这个。 我们来试试吧。也许不是理想的解决方案,但可能适合你。
<?php
$data = 'your table';
preg_match ('|<td align="left">(.*)mph</td>|Usi', $data, $result);
print_r($result); // Your result shoud be in here
你可能需要在正则表达式中考虑一些修剪或占用空格。
答案 1 :(得分:0)
链接到关于NOT PARSING HTML WITH REGEX的帖子的第一条评论很重要。也就是说,尝试类似DOMDocument::loadHTML之类的东西。这应该让你开始用PHP遍历DOM。
答案 2 :(得分:0)
为了扩展DorkRawk的建议(希望提供一个相对简洁的答案,对于初学者来说不是一件容易的事),试试这个:
<?php
$yourhtml = '<td align="left">Los Angeles</td>
</tr>
<tr>
<td align="left">Wind Speed:</td>
<td align="left">85 mph</td>
</tr>
<tr>
<td align="left">Snow Load:</td>
<td align="left">0 psf</td>';
$dom = new DOMDocument();
$dom->loadHTML($yourhtml);
$xpath = new DOMXPath($dom);
$matches = $xpath->query('//td[.="Wind Speed:"]/following-sibling::td');
foreach($matches as $match) {
echo $match->nodeValue."\n\n";
}