我想从html网页上找到并打印所有mp3链接。
<a href="http://example1.com">Test 1</a>
<a href="http://example2.com/page.html">Test 2</a>
<a href="http://example3.com/link/file2.mp3">mp3 link 2</a>
<a href="http://example3.com/link/file3.mp3">mp3 link 3</a>
我现在使用php的HTML代码我想在我的网页上打印这两个mp3链接,所以请帮助我。我认为DOM可以帮助我,但我不知道如何?你可以使用DOM或其他。谢谢你
清楚 -
$dom = new DomDocument();
$dom->loadHTML($html);
$urls = $dom->getElementsByTagName('a');
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
if(preg_match_all("/$regexp/siU", $urls, $matches, PREG_SET_ORDER))
{ foreach($urls as $match)
{// $match[2] = link address
// $match[3] = link text}
}
那将打印所有链接,但我想打印一个有.mp3远征的链接。我想现在已经很清楚了。所以请帮忙
答案 0 :(得分:3)
这样做......
<?php
$html='<a href="http://example1.com">Test 1</a>
<a href="http://example2.com/page.html">Test 2</a>
<a href="http://example3.com/link/file2.mp3">mp3 link 2</a>
<a href="http://example3.com/link/file3.mp3">mp3 link 3</a>';
$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('a') as $tag) {
if(strpos($tag->getAttribute('href'),'.mp3')!==false)
{
echo $tag->getAttribute('href')."<br>";
}
}
输出:
http://example3.com/link/file2.mp3
http://example3.com/link/file3.mp3
答案 1 :(得分:1)
使用CSS3,你可以使用像
这样的选择器选择这样的元素a[href$=mp3]
jQuery中的类似内容是您正在寻找的东西。
我在这里创建了一个小提琴:http://jsfiddle.net/myTerminal/Q4D9n/ 该变量包含您要查找的链接数组。