Как получить доступ к атрибуту HTML и извлечь данные из него в PHP? - PullRequest
0 голосов
/ 01 января 2019

Я новичок в PHP, и я хотел бы знать, как извлечь данные из элемента HTML, такого как src?

Это очень легко сделать в jQuery:

$('img').attr('src');

Но я понятия не имею, как это сделать в PHP (если это возможно).

Вот пример, над которым я работаю:

  1. Iзагрузил $result в SimpleXMLElement и сохранил его в $xml:

    $xml = simplexml_load_string($result) or die("Error: Cannot create object");

  2. Затем использовал foreach для зацикливания всех элементов:

    foreach($xml->links->link as $link){
        echo 'Image: ' . $link->{'link-code-html'}[0] . '</br>'; 
        // returns sometihing similar to: <a href='....'><img src='....'></a>
    }
    
  3. Внутри foreach Я пытаюсь получить доступ к ссылкам (src) в img.

Есть ли способчтобы получить доступ к src из img, вложенному внутрь a - очистить при выводе на экран:

    echo 'Image: ' . $link->{'link-code-html'}[0] . '</br>';

1 Ответ

0 голосов
/ 01 января 2019

Я бы сделал это с помощью встроенных API DOMDocument и DOMXPath, а затем вы можете использовать метод getAttribute длялюбой соответствующий img узел:

$doc = new DOMDocument();
// Load some example HTML. If you need to load from file, use ->loadHTMLFile
$doc->loadHTML("<a href='abc.com'><img src='ping1.png'></a>
                <a href='def.com'><img src='ping2.png'></a>
                <a href='ghi.com'>something else</a>");
$xpath = new DOMXpath($doc);
// Collect the images that are children of anchor elements
$imgs = $xpath->query("//a/img");

foreach($imgs as $img) {
    echo "Image: " . $img->getAttribute("src") . "\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...