PHP 警告 include() 相关

Posted

技术标签:

【中文标题】PHP 警告 include() 相关【英文标题】:PHP warning include() related 【发布时间】:2013-09-18 12:27:39 【问题描述】:

最近我打开了我的 error_log 文件并注意到它有几个与 include() 相关的错误消息。网站每天有大约 1500 名访问者,但这条消息每月只显示大约 3 次,例如我可能在 2 月 6 日有 10 组错误,然后在 2 月 20 日有 15 组错误等。

这是错误文本的示例:

[05-Jun-2013 15:57:39] php 警告:include() [function.include]:php_network_getaddresses:getaddrinfo 失败:/home/user33/public_html/example/file3.php 中的名称解析暂时失败在第 6 行 [05-Jun-2013 15:57:39] PHP 警告:包含(http://www.example.com/file.php)[function.include]:无法打开流:php_network_getaddresses:getaddrinfo 失败:第 6 行 /home/user33/public_html/example/file3.php 中名称解析暂时失败

[2013 年 7 月 19 日 17:42:17] PHP 警告:include() [function.include]:无法打开“http://www.例子。 com/file.php' 用于包含 (include_path='.:/usr/lib/php:/usr/local/lib/php') 在 /home/user33/public_html/example/file4.php 第 5 行 [19-Jul-2013 17:42:17] PHP 警告:include(http://www.example.com/file.php) [function.include]:打开流失败:HTTP 请求失败! HTTP/1.1 500 内部服务器错误 在 /home/user33/public_html/example/file5.php 第 11 行

附:网站不使用任何 CMS,页面简单,主要包含 HTML 代码和几个 PHP 代码。

附: 2. include() 中使用绝对路径会导致这个错误吗?例如我使用 include("http://www.example.com/file.php") 而不是 include("../file.php")。

那可能是什么?

【问题讨论】:

查看***.com/questions/2880563/… 除非您启用了allow_url_fopen,否则您不能包含远程文件。此外,据我记得,即使启用了它,它也无法在 Windows 上运行。 Temporary failure in name resolution 的可能副本 您不应该在include() 中使用 URL,除非您实际上是从外部主机获取页面。请改用相对/绝对文件系统路径。 除了安全之外,它还会减慢您的整个系统 X_X 【参考方案1】:

是的,您遇到问题是因为您使用的是include("http://www.example.com/file.php") 而不是include("../file.php"),请参阅include docs 了解更多详情

【讨论】:

感谢 Benoît!我真的很感激! 您可以使用的唯一绝对路径是文件系统路径。例如/var/www/site/something/file.php 或 C:\site\something\file.php

以上是关于PHP 警告 include() 相关的主要内容,如果未能解决你的问题,请参考以下文章

PHP 警告:include_once():open_basedir 限制生效

PHP require和include的区别

「PHP」include()include_once()require()require_once()的用法及区别

CsCart PHP 警告 - 版本 4.3.3

PHP include 和 require 语句

php include 和require