Php 从远程网站获取信息
我从一个远程网站获取信息,我被这一点html所困扰:Php 从远程网站获取信息,php,regex,Php,Regex,我从一个远程网站获取信息,我被这一点html所困扰: <div> <a onclick="javascripthere" href="#"> <img width="110" height="160" alt="" src="imageurlhere"> {variable sized string} </a> <br>2012/01/10
<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>
2012/01/10 17:35:20
从上面的html中,我需要选择2“{variable size string}”。它们可以是任何类型的字符(a-zA-Z0-9和空格/其他字符),我不知道使用哪种正则表达式或php来获取这两个字符串
有什么建议吗?您可以使用正则表达式来完成此操作,而不是使用正则表达式,因为正则表达式不适合解析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');
}
$doc=newDOMDocument();
$doc->loadHTML(“”);
$images=$doc->getElementsByTagName('img');
foreach($images作为$image){
echo$image->getAttribute('alt');
}
有许多项目使用更简单的API包装DOMDocument,例如(类似jQuery的选择器来导航DOM)和。不使用
使用一个。它将使您的开发更加简单。$preg\u match(“/(.*?/”,$string,$match);
//$match[1]是您的第一个字符串
$preg_匹配(“/
$preg_match("/<img.*?>(.*?)<\/a>/", $string, $match);
//$match[1] is your first string
$preg_match("/<img alt=\"(.*?)\"/", $string, $match2);
//match2[1] is your second string.