URL使用file_get_contents搜索字符串

时间:2014-07-22 16:14:58

标签: php url search download

我正在编写一个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";
}
?>

2 个答案:

答案 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