我正在从远程网站上获取信息,我仍然坚持使用这一点:
<div>
<a onclick="javascripthere" href="#">
<img width="110" height="160" alt="" src="imageurlhere">
{variable sized string}
</a>
<br>2012/01/10 17:35:20<br>
<img alt="{variable sized string}" src="imageurlhere">
</div>
从上面的html我需要拿起2“{variable sized string}”。它们可以是任何类型的字符(a-zA-Z0-9和空格/其他字符),我无法弄清楚用什么样的正则表达式或php来获取这两个字符串。
有什么建议吗?
答案 0 :(得分:0)
您可以使用DOMDocument来执行此操作,而不是使用正则表达式,这对于解析HTML或XML并不理想。您的代码将更清晰,更易于阅读。
例如:
$doc = new DOMDocument();
$doc->loadHTML("<html><body><img alt="{variable sized string}" src="imageurlhere"></body></html>");
$images = $doc->getElementsByTagName('img');
foreach($images as $image) {
echo $image->getAttribute('alt');
}
有许多项目使用更简单的API(例如phpquery(jQuery,如选择器来导航DOM)和Simple HTML DOM Parser来包装DOMDocument。
答案 1 :(得分:0)
请勿使用regular expressions to parse HTML。
使用DOM parser。它将使您的开发更多更简单。
答案 2 :(得分:0)
$preg_match("/<img.*?>(.*?)<\/a>/", $string, $match);
//$match[1] is your first string
$preg_match("/<img alt=\"(.*?)\"/", $string, $match2);
//match2[1] is your second string.