我有这段代码
$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
我是否知道是否可以创建动态文本文件名?
谢谢
答案 0 :(得分:2)
编写这个简单的代码,不需要if语句。它将以读写模式打开文件,如果它不存在则自动创建,如果文件已存在则打开文件。
$ext = ".txt";
$filename = $namef.$ext;
$file = fopen($filename,"w+");
fwrite($file, $privatekey);
fclose($file);
chmod($file,0777);
答案 1 :(得分:0)
回答你的问题。是的,可以使用“动态”文件名创建文件。
要创建文件,您可以使用file_put_contents();
此函数与连续调用fopen(),fwrite()和fclose()以将数据写入文件相同。
如果filename不存在,则创建该文件。否则,将覆盖现有文件,除非设置了FILE_APPEND标志。
如果您要将文字附加到已存在的文件,请使用 FILE_APPEND 标记
FILE_APPEND 如果文件文件名已存在,请将数据附加到文件而不是覆盖它。
示例:强>
$ext = ".txt";
$filename = $namef.$ext;
file_put_contents($filename, $privatekey, FILE_APPEND);
如果您想要创建文件(如果不存在或被覆盖),请不要使用 FILE_APPEND 标记
示例:强>
$ext = ".txt";
$filename = $namef.$ext;
file_put_contents($filename, $privatekey);
另外,请确保您在要执行文件操作的目录中拥有适当的权限。