读取.dat文件为“rb”读取二进制文件

时间:2010-04-06 15:32:52

标签: php binary fopen

我在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")的其他替代方案?

4 个答案:

答案 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中的文件。必须提供路径+文件名以避免此类错误。