如何将PHP中的文件保存到高于当前的目录?

时间:2012-03-25 02:59:14

标签: php

该脚本位于myusername / public_html / item / index.php

保存文件的代码:

$filename = $_SERVER['DOCUMENT_ROOT'].'/../data/guestbook.txt';
        $filehandle = fopen($filename, 'ab+') or die("<p>Unable to create the file!</p>\n".$filename);
        flock($filehandle, LOCK_EX) or die("<p>Unable to lock the file!</p>\n");
        fwrite($filehandle, $new_entry) or die("<p>Unable to write to the file!</p>\n");
        fclose($filehandle);

由于某种原因,它在fopen上失败,文件名实际上最终与/../字面意思相反,而不是导航到正确的路径。

做什么,该做什么?

2 个答案:

答案 0 :(得分:0)

  

由于某种原因,它在fopen上失败了

编程中没有“某些原因”。总有一定的理由 你必须知道它。

  

文件名实际上最终与/../

完全一致

这正是你所写的,没有什么值得抱怨的。

  

如何将PHP中的文件保存到高于当前的目录?

从技术上讲,您设置正确。

但除了错误的路径创建方式之外,还有其他原因。
是的,程序失败总是有很多的原因!

  

做什么,该做什么?

运行此代码并查看其内容。

ini_set('display_errors',1);
error_reporting(E_ALL);
$filename = $_SERVER['DOCUMENT_ROOT'].'/../data/guestbook.txt';
file_put_contents($filename,$new_entry);

它会告诉你它失败的原因。

答案 1 :(得分:0)

如果php脚本在item文件夹中且项目和数据在目录层次结构中位于同一级别,则可以像这样编码

$savedir = '../data/';
$filename = $savedir.'guestbook.txt';

确保apache用户具有对目录的写访问权限,然后通过&#34; chown -R apache:apache&#34;和&#34; chmod 755&#34;。

可能是&#34; /../&#34;在你的代码中给出了错误。尝试删除第一个正斜杠。