是否有一种方法可以在PHP中检索外部DOM(与loadHTMLfile),包括html调用中的一些标头


Is there a way for retrieving an external DOM in PHP (with loadHTMLfile) including some headers in the html call?

我试图从外部url获得一些DOM,同时传递一些标头,因此收到的DOM必须根据它们不同。

例如,如果我有一个移动设备报头,那么接收到的DOM应该与PC报头完全不同。

目前我还没有找到这样做的方法,因为我总是接收相同的DOM(与我的默认头)。

提前感谢。

您可以为加载操作指定一个所谓的流上下文。检查这个示例,它派生自PHP手册

// Specify headers
$opts = array(
    'http' => array(
        'user_agent' => 'PHP libxml agent',
    )
);
// Create and assign a stream context    
$context = stream_context_create($opts);
libxml_set_streams_context($context);
// request the HTML file through HTTP
$doc = DOMDocument::loadHTMLFile('http://www.example.com/file.html');

您可以在PHP手册中查看这些文章:

  • DOMDocument: loadHTMLFile ()
  • stream_context_create ()
  • libxml_set_streams_context ()
  • 支持的协议和包装
  • HTTP上下文选项