2017-02-21 14 views
1

Я пытаюсь получить src a с определенным ID. Пример:Получить веб-скребок src с определенным ID

<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

Возможный дубликат [Как вы разобрать и обработать HTML/XML в PHP?] (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 form instagram, который является HTTPS, код, который вы создали, отлично работает, если я использую текст вручную. –