我在webroot上方有一个文件夹\folder\
,其中包含.php
,.inc
,.dat
个文件
.php
可以访问.inc
没问题
但是当.inc
尝试使用.dat
访问fopen('mydat.dat', "rb");
时,会出现错误,内部无法找到mydat.dat
\folder\myinc.inc
当然找不到它,因为.inc
是一个文件而不是文件夹。为什么php会这样对待它?
为什么php试图在.dat
内找到.inc
的任何想法?
或fopen($filename, "rb")
的其他替代方案?
答案 0 :(得分:1)
学习文件系统基础知识。 您的工作目录仍在webroot中。它没有改变它到\文件夹\(虽然看起来新版本的PHP确实在当前文件位置查看文件)。
无论如何,如果你想在同一目录中打开一个文件,dirname(__FILE__)
总是为你
在myinc.inc中你可以使用
fopen(dirname(__FILE__).'/mydat.dat', "rb");
答案 1 :(得分:1)
阅读完评论后,我认为您希望fopen使用include_path。
fopen()默认情况下不使用include_path(与include不同)。这是一个选择。请参阅手册。 http://www.php.net/manual/en/function.fopen.php
答案 2 :(得分:0)
听起来您已启用safe_mode
,但没有open_basedir
的值,或者文件位于其外部。将.dat文件放在给该选项的路径中。
答案 3 :(得分:-1)
我们什么时候处理php中的文件。必须提供路径+文件名以避免此类错误。