получить конкретные данные с помощью file_get_contents () - PullRequest
0 голосов
/ 29 июня 2018

Я хочу получать контент с сайта, на котором я хочу выводить некоторые конкретные данные. Данные там выглядят так:

<a itemprop="email">office@xy.com</a>

Из этого типа данных я хочу вывести только адрес электронной почты.

Это код:

<?php
$homepage = file_get_contents('https://www.xy.com/');
echo $homepage;
?>

1 Ответ

0 голосов
/ 29 июня 2018

Вы должны использовать парсер. Это будет более точным, чем регулярное выражение или строковые функции.

$dom = new domdocument();
$dom->loadhtml('<a itemprop="email">office@xy.com</a>');
$xpath = new DOMXPath($dom);
echo $xpath->query('//a[@itemprop="email"]')[0]->nodeValue;

https://3v4l.org/BU7Q4

Вы можете прочитать больше здесь.

  1. http://php.net/manual/en/class.domdocument.php
  2. https://en.wikipedia.org/wiki/XPath

Альтернативой использованию xpath может быть выбор всех ссылок, а затем поиск атрибута.

$dom = new domdocument();
$dom->loadhtml('<a itemprop="email">office@xy.com</a>');
$links = $dom->getElementsByTagName('a');
foreach($links as $link) {
    if($link->getAttribute('itemprop') == 'email') {
        echo $link->nodeValue;
    }
}
...