2017-02-21 80 views
1

我試圖獲取具有特定ID的src。 例子:獲取具有特定ID的src的網頁抓取

<img id="hi_1" src="url of image 1"> 
<img id="hi_2" src="url of image 2"> 
<img id="hi_3" src="url of image 3"> 

result = url of image 1; 

我有這樣的代碼:

$html = file_get_contents('url of site'); 
preg_match('here I don't know what to do', $html, $src); 
$src_out = $src[1]; 
+0

可能的[你如何解析和處理PHP中的HTML/XML?]的重複(http://stackoverflow.com/questions/3577641/how-do-you-parse-and-process-html- xml-in-php) –

回答

0

你正在尋找的東西像<img id="hi_1" src="(.*)">,但正則表達式是不走這個正確的方式。按照這個問題的其他答案嘗試使用DOM。

1

這將解決你的問題:)

你會php documentation找到更多信息。

<?php 

    $html = '<img id="hi_1" src="url of image 1"> 
    <img id="hi_2" src="url of image 2"> 
    <img id="hi_3" src="url of image 3">'; 


     $dom = new domDocument(); 
     $dom->loadHTML($html); 
     $dom->preserveWhiteSpace = false; 
     $images = $dom->getElementsByTagName('img'); 
     foreach ($images as $image) { 
      $img_id = $image->getAttribute('id'); 

      if($img_id == 'hi_2') { 
       echo $image->getAttribute('src'); 

      } 
     } 
+0

只是一件事:當我使用$ html = file_get_contents('httpss://www.instagram.com/'); (例如)這不會在屏幕上顯示任何內容);非常感謝您的幫助! –

+0

如果你想直接加載HTML文件,你需要使用http://php.net/manual/en/domdocument.loadhtmlfile.php – bobomam

+0

我不明白該怎麼做,我試圖獲得html形成HTTPS的instagram,如果我使用手動寫入的文本,則所製作的代碼完美無缺。 –