【发布时间】:2016-04-15 04:33:53
【问题描述】:
我有一个名为 $code 的字符串。它包含如图所示的数据集。我正在尝试解析 href=,channel=,src= 的值。我尝试使用 preg match all 但我没有数据!谁能告诉我解析上述数据的最佳方法是什么?提前谢谢。
$code 的价值:
<div class="new"> <a class="block" target="_blank" href="http://somesite:8080/hls/mango1.m3u8?token=34523sedfsdfsdf&e=123456789&channel=mango1" data-toggle="modal" data-target="#mango1">
<div class="image-container"> <img src="images/mango1.png" class="img-responsive" > </div>
</a> </div>
<div class="new"> <a class="block" target="_blank" href="http://somesite:8080/hls/mango2.m3u8?token=sfaesfraesgh452342&e=987654321&channel=mango2" data-toggle="modal" data-target="#mango2">
<div class="image-container"> <img src="images/mango2.png" class="img-responsive" > </div>
</a> </div>
php代码:
preg_match_all("#target=\"_blank\" href=\"([^<]+)\" data-toggl", $code, $foo2);
var_dump($foo2[1]);
print_r($foo2[1]);
编辑: 我尝试使用 DOM 我得到了 href 的值,但是如何获得 src= 的值?
$dom = new DOMDocument;
$dom->loadHTML($code);
$xpath = new DOMXPath($dom);
$nodeList = $xpath->query('//a[@class="block"]');
foreach ($nodeList as $node) {
$href = $node->getAttribute('href');
$imageurl = $node->getAttribute('src');
echo "<br>".$href;
echo "<br>".$imageurl;
}
【问题讨论】:
-
你需要用到DOMDocument和DOMXPath,搜索一下教程。你可以看这里:phptutorial.info/?domxpath.query
-
感谢您的回复。 Casimir et Hippolyte 我编辑了我的第一篇文章我使用了 DOM 我得到了 href 的值但是如何获得 src = 的值?
-
在您的代码中,您将获得每个具有类“块”属性的“a”节点。以同样的方式,您可以构建一个从每个节点搜索的其他查询 (在 foreach 循环内)(请参阅 PHP 手册中的 DOMXPath::query (第二个参数) ) 一个后代 img 节点并获取 src 属性。
-
这样的:eval.in/500214
标签: php parsing dom preg-match-all