0

如何在 php 中创建文件?我试过用...

$num = file_get_contents('qnum/qnum.txt');
$newFile = 'question'.$num.'.txt';
$newNum = $num++;
$openingQNUM = fopen('qnum/qnum.txt','w');
echo fwrite($openingQNUM,$newNum);
fclose($openingQNUM);

我知道我已经正确调用了这些函数,因为它给了我以下错误消息:

警告:fopen(qnum/qnum.txt) [function.fopen]:无法打开流:第 16 行 D:\Hosting\11017597\html\Question Site\ask.php 中的权限被拒绝

警告:fwrite() 期望参数 1 是资源,布尔值在第 17 行的 D:\Hosting\11017597\html\Question Site\ask.php 中给出

警告:fclose() 期望参数 1 是资源,布尔值在第 18 行的 D:\Hosting\11017597\html\Question Site\ask.php 中给出

有人可以告诉我我做错了什么吗?

4

2 回答 2

1

PHP 抱怨无法创建新文件,因为文件系统拒绝写入访问。您应该检查是否允许运行 PHP 的进程写入目录。

在其他新闻中:'file_put_contents() does all of the above and is the counterpart offile_get_contents()' - 考虑使用它。但是,由于文件权限问题,它现在无法正常工作。

然后:欢迎来到并发访问的世界!您没有使用任何形式的锁定,这会使您的代码成为竞争条件的受害者。两个请求可能读取同一个文件(计数器 = 5),都增加计数器(= 6)并写回。结果:计数器是 6,但 7 应该是正确的。

于 2013-10-13T08:57:54.387 回答
0

您似乎没有对该文件的读取权限。检查 is_readable('qnum/qnum.txt') 是否返回 TRUE。

于 2013-10-13T08:57:07.353 回答