Xpath 在本地主机和服务器上返回了不同的结果


Xpath returned different result on localhost and server

    ...
    ...        
    $page = curl_exec($ch);
    $DOM = new DOMDocument;
    $DOM->loadHTML($page);
    $xpath = new DOMXPath($DOM);
    $feeds = $xpath->query("//head/link[@href][@type='application/rss+xml']/@href");
    echo $feed->length;

我使用了 curl 和 xpath,它在我的服务器中坏了。它在本地主机中返回 1,但在服务器中返回空白。我的服务器中安装了 curl。

在您的问题中,您概述了:

 print_r($feed->length);

它在本地主机中返回 1,但在服务器中返回空白。

很可能您的服务器上出现了错误。在服务器上,您必须启用 PHP 错误日志记录并将错误级别设置为至少通知。然后,您必须重现"服务器空白"情况。之后,您应该在错误日志中找到一些错误信息,例如

注意:尝试获取非对象的属性

(此消息是示例性的,您的消息可能会有所不同。您还将获得发生错误的文件名和行号。

然后,您可以使用 PHP 手册在发生错误的线路周围位置查看使用的函数、方法和语言结构,以及其他精选资源,例如我们在现场提供的用于解决问题的 PHP 错误参考。