2

我有这个代码

$ext = ".txt";
$filename = $namef.$ext;
if(!file_exists($filename))
{
$file = fopen($filename,"w");
fwrite($file, $privatekey);
fclose($file);
chmod($file,0777);
}

$namef是输入到该程序中的任何名称。但是,当我运行它时,我不断得到:

Unable to access (name_of_file).txt in something.php
Warning: fopen(name_of_file.txt) [function.fopen]: failed to open stream: No such file      or directory in something.php 
Warning: fwrite(): supplied argument is not a valid stream resource in ./something.php on line 79

Warning: fclose(): supplied argument is not a valid stream resource in ./something.php on line 80

Warning: chmod() [function.chmod]: Unable to access in ./something.php on line 81

我可以知道是否可以创建动态文本文件名吗?

谢谢

4

2 回答 2

2

编写这个简单的代码不需要 if 语句。它将以读写模式打开文件,如果文件不存在则自动创建,如果文件已存在则打开文件。

$ext = ".txt";
$filename = $namef.$ext;
$file = fopen($filename,"w+");
fwrite($file, $privatekey);
fclose($file);
chmod($file,0777);

于 2013-05-22T06:27:11.277 回答
0

回答你的问题。是的,可以使用“动态”文件名创建文件。

要创建文件,您可以使用file_put_contents();

该函数等同于依次调用 fopen()、fwrite() 和 fclose() 将数据写入文件。

如果文件名不存在,则创建文件。否则,现有文件将被覆盖,除非设置了 FILE_APPEND 标志。

如果要将文本附加到已存在的文件中,请使用FILE_APPEND标志

FILE_APPEND 如果文件 filename 已经存在,则将数据附加到文件而不是覆盖它。

例子:

 $ext = ".txt";
 $filename = $namef.$ext;
 file_put_contents($filename, $privatekey, FILE_APPEND);

如果要创建文件(如果不存在或被覆盖),请不要使用FILE_APPEND标志

例子:

 $ext = ".txt";
 $filename = $namef.$ext;
 file_put_contents($filename, $privatekey);

还要确保您在要执行文件操作的目录中具有适当的权限。

于 2013-05-22T06:50:44.800 回答