使用 file_get_contents() 获取特定数据

get specific data with file_get_contents()

我想从我想输出一些特定数据的站点获取内容。那里的数据如下所示:

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

对于此类数据,我只想输出电子邮件地址。

这是代码:

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

你应该使用解析器。这将比正则表达式或字符串函数更准确。

$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 的替代方法是 select 所有链接然后查找属性。

$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;
    }
}