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

如何将PHP中的文件保存到比当前文件更高的目录?,php,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($file

脚本位于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);
$filename=$\u服务器['DOCUMENT\u ROOT']./../data/guestbook.txt';
$filehandle=fopen($filename,'ab+')或die(无法创建文件!

\n“$filename”); flock($filehandle,LOCK_EX)或die(无法锁定文件!

\n”); fwrite($filehandle,$new_entry)或die(无法写入文件!

\n”); fclose($filehandle);
由于某些原因,它在fopen上失败,文件名实际上以//结束,而不是导航到正确的路径

怎么办,怎么办

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

编程中没有“某些原因”。总有某种原因。
你必须知道这一点

实际上,文件名是以“/”结尾的/

那正是你写的,没什么可抱怨的

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

从技术上讲,您设置的是正确的

但除了路径创建的错误方式之外,可能还有另一个原因。
是的,程序失败的原因总是很多

怎么办,怎么办

运行这段代码,看看它说了什么

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

它将告诉您失败的原因。

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

$savedir = '../data/';
$filename = $savedir.'guestbook.txt';
确保apache用户通过“chown-R apache:apache”和“chmod 755”具有对目录的写访问权


可能代码中的“/…/”给出了错误。尝试删除第一个正斜杠。

是否检查了目录/文件权限以确保您有访问权限?我记得我写的代码几乎可以写入任何任意位置。@ashes999是的,我可以访问数据目录:$\u服务器['DOCUMENT\u ROOT']的输出是什么?可能重复为什么人们对这里的“重复”问题着迷。谁在乎呢?哈哈