Php fopen(';filename';,';w';)返回false,但file#u exists(';filename';)返回true

Php fopen(';filename';,';w';)返回false,但file#u exists(';filename';)返回true,php,Php,需要帮助吗 $file = fopen('data.json', 'w'); var_dump($file); 此操作的输出为bool(false) 但当我这么做的时候 var_dump(file_exists('data.json')); 输出为bool(真) 有什么问题吗 我昨天测试过了,效果很好。但现在不会了。我把它上传到主机,它仍然可以正常工作 我已尝试将文件名更改为fopen()创建文件时不存在的文件名。但事实并非如此 温度修正: 没有完全修复,因为我想授予777文件权限并不是真正

需要帮助吗

$file = fopen('data.json', 'w');
var_dump($file);
此操作的输出为
bool(false)

但当我这么做的时候

var_dump(file_exists('data.json'));
输出为
bool(真)

有什么问题吗

我昨天测试过了,效果很好。但现在不会了。我把它上传到主机,它仍然可以正常工作

我已尝试将文件名更改为fopen()创建文件时不存在的文件名。但事实并非如此

温度修正:
没有完全修复,因为我想授予777文件权限并不是真正的修复方法。我还在想,为什么fopen()昨天在没有完全权限的情况下,对同一个用户运行良好。

检查您对包含该文件的目录的权限。您可以看到,当文件不存在时,它仍将创建该文件。请参阅php fopen文档。下面是链接:

可能您没有对文件
ls-la data.json
says-rw-rw-r--1的写入权限。我应该将其更改为rw-rw-rw吗?如果运行php的进程不属于您的用户,那么您可以更改进程所有者或将“其他”权限更改为rwook。所以我把它改成了rw-rw-rw,现在它开始工作了。但还有一个问题。昨天的许可证只是rw-rw-r,但效果很好。可能是什么问题?PHP运行时使用的是另一个用户,该用户有写权限,而破坏它的用户现在没有写权限。问题得到了回答?是的。当我将文件名更改为不存在的文件时,它不会创建新文件。那么,问题可能是php正在运行?那么它必须是您对该目录的权限。您正在linux机器上运行它吗?请尝试chmod-R 777/var/www这将为用户提供所有权限,如果这样做有效,请尝试将权限降低到所需的权限级别Yes。我是linux新手,所以我对管理文件和文件夹没有太多知识。那我该怎么检查许可呢?整个/var/www?或者只是里面的文件夹