PHP如何解释本地路径以及它在何处打开文件?

时间:2013-04-10 22:30:29

标签: php file fwrite

我正在试图弄清楚WordPress主题的工作原理。为此,我想从各种函数写入一个文件。该文件位于站点的根目录下。

fwrite(fopen("output.txt", "a"), "Test output\n");

/test.php,此输出到/output.txt。我想在深层嵌套函数中写一个变量的值。将上面的代码输出复制/粘贴到我找不到的地方。这样:

fwrite(fopen("/output.txt", "a"), "Test output\n");

也不起作用。它提出了:

Warning: fopen(/output.txt) [function.fopen]: failed to open stream: Permission denied in /public_html/test.php on line 17

Warning: fwrite() expects parameter 1 to be resource, boolean given in /public_html/test.php on line 17

本手册指出了一些关于方案和包装器的东西,但没有多说道路。

  

如果PHP确定文件名指定了本地文件,那么它将尝试在该文件上打开一个流。该文件必须可供PHP访问,因此您需要确保文件访问权限允许此访问权限。如果您已启用safe modeopen_basedir,则可能会有其他限制。

如何正确引用我想要的路径,以及PHP如何选择使用相对路径写入的位置?

1 个答案:

答案 0 :(得分:1)

如果您不使用绝对路径,则路径相对于wordpress的index.php。要访问与php文件存储在同一文件夹中的文件,请使用全局常量__DIR__

fwrite(fopen(__DIR__ ."/output.txt", "a"), "Test output\n");

__DIR__将为您提供当前php脚本的绝对路径。