2012-01-07 14 views
0

私は特定のPHPコードを実行するたびに上書きする必要がある簡単なfile.txtを持っています。file_put_contents()は上書きではなく、ちょうど追加する

$msg ="string"; 
$file = 'file.txt'; 
$opn = file_get_contents($file); 
$opn .= $msg; 
file_put_contents($file, $opn); 

コードは完全に機能し、追加したい文字列を追加しましたが、それを前者に追加しています。私はそれを空白にしてから書き留めておきたい。

マニュアルを読みましたhttp://php.net/manual/en/function.file-put-contents.php 私はFILE_APPEND引数を使用していません。

私が見ていないのは簡単なことです。私を助けてください。

EDIT:

ここでは、全体のコードです。私はサイトからいくつかのデータを取得しています。データはこの形式の12.222 AAAで、後で簡単にアクセスできるようにテキストファイルに保存しようとしています。 何らかの理由で何かが動作しません。スクレーパーは完璧に動作し、$item="string";を設定するとfile_put_contents()が完璧に機能しますが、$itemが以下のコードと同じに設定されていると機能しません。私が$ itemをエコーすると、私は欲しいものを得る。

<?php 

include('simple_html_dom.php'); 


$html = file_get_html('http://site.com/boom'); 

// find the thing in the span 
foreach($html->find('div') as $article) { 
    $item = $article->find('span', 0)->plaintext; 

echo $item; 

    $file = 'file.txt'; 
    $fh = fopen('file.txt', 'w'); 
    fclose($fh); 
    $opn = file_get_contents($file); 
    $opn .= $item; 
    file_put_contents($file, $opn); 

} 
?> 
+0

4行目のピリオドを削除します。最も速い解決策ですが、Gauravの解決策がうまくいかなかった場合は必ずしも最善ではありません(あなたに私たちには表示されていないコードがあると仮定します)。 –

答えて

3

は、あなたがデータを読み取る

$msg ="string"; 
$file = 'file.txt'; 
file_put_contents($file, $msg); 

必要がありませんを使用することができます$opn .= $msg;

内の文字列を連結しています。

+0

私はやったし、今はそれに書いていない。私がそれをしたのは、このhttp://php.net/manual/en/function.file-put-contents.php(例1) – acrobat

+0

のためです。回答をコピーした場合は、エラーが発生しました。 – Gaurav

+0

私は$ msgの代わりに$ opnを使用しました – Gaurav

1

ファイルの内容を文字列変数($ opn)に読み込み、メッセージ($ msg)を$ opnに追加してから、$ opnをファイルに書き戻しています....あなたが行っている追加あなたはこのコードは、あなたが探しているものでしょう

file_put_contents($file, $msg); 
+0

おかげで、問題は私の一部で他の設定であった – acrobat

1
<?php 
    $msg ="string"; 
    $file = 'file.txt'; 
    $fh = fopen('file.txt', 'w'); 
    fclose($fh); 
    $opn = file_get_contents($file); 
    $opn .= $msg; 
    file_put_contents($file, $opn); 
    ?> 

を使用し、その後、ファイルにのみ$ MSGを書きたい場合は

$opn .= $msg; 

..です:)

+0

Rajatに感謝しますが、私はそれがtxtファイルにあるものを上書きしたいだけで、1つの "文字列"しか持っていません。基本的にコードが実行されるたびに、「文字列」のインスタンスが1つだけ必要です。あなたのコードはちょうどそれに追加されています。 – acrobat

+0

あなたはそれを実行しようとしましたか?それは追加されていません。それは以前のすべてのコンテンツを消去し、msg変数をそこに書きます.. –

+0

ありがとうございました、問題は他の設定で私の一部でした – acrobat

-2

file_put_contents($ file、$ opn、FILE_APPEND);

+0

将来的には、答えが正解である理由を説明してください。説明する追加の努力は、未来のユーザーが答えだけでなく、状況に対する正解を探しているのに役立ちます。 – JJFord3

関連する問題