- 締切済み
phpで二重書込みできないプログラムを作りたい
PHP初心者です。 テキストファイルに、ある文字列を書き込むプログラムを作ろうとしています。 ファイル内容に同じ文字列があれば書き込まず、 同じ文字列が無ければファイルに書き込むという プログラムを作りたいのですが、 うまくいきません。 どなたかアドバイスをお願いします。 <?php $name = "文字列"; $fp = @fopen("file.txt", "r"); $contents = @file_get_contents($fp); if(ereg($name, $contents)) { print "登録済みです。" ; } else { $fpa = @fopen("file.txt", "a"); fputs($fpa, "$name\n"); fclose($fpa); print "登録しました。"; } fclose($fp); ?>
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- shimix
- ベストアンサー率54% (865/1590)
>fgetsで一行づつ取り込んで行くしかなさそうですね。 え? $contents = file_get_contents("file.txt"); じゃダメなんですか?No.1では単に「引数に指定するものが違う」と書いたのですけど。
- shimix
- ベストアンサー率54% (865/1590)
#急ぎすぎて大事なことを忘れた(汗 エラー抑制(@)は使いすぎないほうがいいです。 >$contents = @file_get_contents($fp); 本来、ここでエラーになって気付くハズなので・・
- shimix
- ベストアンサー率54% (865/1590)
取り急ぎ・・ file_get_contents()の引数は「ファイル名(文字列)」です。 http://jp.php.net/manual/ja/function.file-get-contents.php
お礼
ありがとうございます。 fgetsで一行づつ取り込んで行くしかなさそうですね。 勉強になります。