我正在编写一个php脚本,在网址(http://mp3skull.com/)中搜索文本“.mp3”,希望将下载链接打印为字符串。下面是我到目前为止的代码,它搜索mp3skull页面的html代码为“.mp3”,并通知用户是否成功。我需要帮助的部分:脚本需要能够在网页源中找到“.mp3”,然后在源代码中将它前面的URL /文本打印为纯文本字符串。我希望这是有道理的,你能帮助我。感谢。
<?php
$filename = 'http://mp3skull.com/mp3/hot_mallets.html';
$searchfor = '.mp3';
$file = file_get_contents($filename);
if(strpos($file, $searchfor))
{
echo "String found";
}
?>
答案 0 :(得分:2)
试试这个
<?php
$filename = 'http://mp3skull.com/mp3/hot_mallets.html';
$searchfor = '.mp3';
$file = file_get_contents($filename);
$html = new DOMDocument();
@$html->loadHTML($file);
foreach($html->getElementsByTagName('a') as $a) {
$property=$a->getAttribute('href');
if (strpos($property , $searchfor))
print_r($property);
echo "<br/><br/>";
}
?>
答案 1 :(得分:1)
你正在使用错误的工具来完成这项工作。要有效获取这些值,请改用DOMDocument
+ DOMXpath
。例如:
$contents = file_get_contents('http://mp3skull.com/mp3/hot_mallets.html');
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($contents);
libxml_clear_errors();
$xpath = new DOMXpath($dom);
$element = $xpath->query('//div[@id="right_song"]/div[3]/div[1]/div[1]/a')->item(0)->getAttribute('href');
echo $element; //http://incoming.jazz-on-line.com/a/mp3a/VIC041408.mp3