使用fwrite替换文件内容

时间:2012-08-02 16:19:37

标签: php

每次刷新页面时,我都会尝试将数据写入php文件。下面的代码成功写入文件,但是,第一次重写后文件内容保持不变,即使每次刷新页面时用于写入文件的数组中包含的数据都不同。

我的问题是:如何重写或替换已存在的.php文件的内容?

我尝试unlink('../html/freesample2.php');来解决这个问题,删除'已写'文件,然后重新创建它,但它没有帮助。

我感谢任何建议。

//Create variable for file I want to write to
//second parameter 'a' stands for APPEND
$f = fopen('../html/freesample2.php', 'a') or die('fopen failed');

$php_script= '<?php $free_sample_array_new = Array(); $free_sample_array_new[] = '.$free_sample_array[0].'; $free_sample_array_new[] = '.$free_sample_array[1].'; ?>';

fwrite($f, $php_script);

fclose($f);

3 个答案:

答案 0 :(得分:5)

如果要打开文件进行书写,可以使用'w'作为fopen()的访问模式。如果该文件尚未存在,则会创建该文件,或者将其截断为空,并且可以将其写入其中,就好像它是新的一样。

或者,您可以使用file_put_contents使操作成为oneliner。

旁注:如果要使用文字值生成php代码,请查看var_export函数,这可以大大简化它(使用第二个可选参数)。

答案 1 :(得分:0)

运行此代码并检查每次刷新后freesample2.php是否有新值?

<?
$free_sample_array = array(rand());
$f = fopen('../html/freesample2.php', 'w') or die('fopen failed');
$php_script= '<?php $free_sample_array_new = Array(); $free_sample_array_new[] = '.$free_sample_array[0].'; ?>';
fwrite($f, $php_script);
fclose($f);
?>

答案 2 :(得分:0)

如果您使用的是Windows,则必须先关闭csv文件(如果在桌面上打开),然后再使用&#39; w&#39;模式。