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 限制生效