PHP动态文本文件创建

时间:2013-05-22 05:59:40

标签: php file chmod

我有这段代码

$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

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

谢谢

2 个答案:

答案 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);

另外,请确保您在要执行文件操作的目录中拥有适当的权限。