2014-07-22 79 views
1

我正在寫一個php腳本,該腳本搜索文本「.mp3」的url(http://mp3skull.com/),希望以字符串形式將歌曲的下載鏈接打印到歌曲中。以下是我目前使用的代碼,它在mp3skull頁面的html代碼中搜索「.mp3」,並通知用戶它是否成功。我需要幫助的部分:腳本需要能夠在網頁源代碼中找到「.mp3」,然後在源代碼中以純文本字符串形式打印前面的url /文本。我希望這是有道理的,你可以幫助我。謝謝。URL搜索帶有file_get_contents的字符串

<?php 
$filename = 'http://mp3skull.com/mp3/hot_mallets.html'; 
$searchfor = '.mp3'; 
$file = file_get_contents($filename); 
if(strpos($file, $searchfor)) 
{ 
    echo "String found"; 
} 
?> 
+0

我感覺以你想達到什麼樣的,雖然我不知道如何準確地做到這一點,但做'回聲「$文件「;'當使用'<!DOCTYPE html>時輸出'Hello world file.mp3'' Hello world file.mp3'如果這就是你想要得到的。 –

回答

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 
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/>"; 
} 
?>