我已经将我的Firefox书签导出为html,因此我可以将我的大量音乐集合下载到手机上,我的问题是我知道的并不容易。
我的意图是使用PHP将html解析为URL数组
继承人html的样子
<DT><A HREF="https://www.youtube.com/watch?v=Ue8PpA557Bc" ADD_DATE="1477165404" LAST_MODIFIED="1477165404" ICON_URI="https://s.ytimg.com/yts/img/favicon_144-vflWmzoXw.png" ICON="data:image/png;base64,">Don Diablo - Knight Time (Official Music Video) - YouTube</A>
我该怎么做?
答案 0 :(得分:2)
如果你输入$html
一个正确的html字符串,你可以用DOMDocument解析字符串并用XPath选择href属性。
<?php
$html = '<DT><A HREF="https://www.youtube.com/watch?v=Ue8PpA557Bc" ADD_DATE="1477165404" LAST_MODIFIED="1477165404" ICON_URI="https://s.ytimg.com/yts/img/favicon_144-vflWmzoXw.png" ICON="data:image/png;base64,">Don Diablo - Knight Time (Official Music Video) - YouTube</A>';
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DomXPath($doc);
$nodeList = $xpath->query("//a/@href");
$links_array = [];
foreach($nodeList as $node){
$links_array[] = $node->nodeValue;
}
echo "<pre>";
print_r($links_array);
echo "</pre>";
这里的输出是:
Array ( [0] => https://www.youtube.com/watch?v=Ue8PpA557Bc )
答案 1 :(得分:2)
$doc = new DOMDocument();
$doc->loadHTML($bookmarks);
foreach ($doc->getElementsByTagName("a") as $node) {
$urls[] = $node->getAttribute("href");
}