2014-07-22 3 views
1

문자열에 노래에 대한 다운로드 링크를 인쇄하기 위해 ".mp3"텍스트의 URL (http://mp3skull.com/)을 검색하는 PHP 스크립트를 작성했습니다. 아래는 내가 지금까지 가지고있는 코드입니다. 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

시도 " 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/>"; 
} 
?> 
관련 문제