1

ページが更新されるたびに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);
4

3 に答える 3

6

書き込み用にファイルを開きたい場合は'w'、のアクセスモードとして使用できますfopen()。ファイルがまだ存在しない場合はファイルを作成するか、空になるように切り捨てて、新しいファイルのように書き込むことができます。

または、 file_put_contentsを使用して、操作をワンライナーにすることもできます。

補足:リテラル値を使用してphpコードを生成している場合は、var_export関数を調べてください。これにより、大幅に簡略化できます(2番目のオプションのパラメーターを使用)。

于 2012-08-02T16:25:22.947 に答える
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);
?>
于 2012-08-02T16:28:37.823 に答える
0

Windowsを使用している場合は、「w」モードで書き込む前に、csvファイルを閉じる必要があります(デスクトップで開いている場合)。

于 2014-10-21T02:59:08.160 に答える