• 締切済み

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); ?>

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

>fgetsで一行づつ取り込んで行くしかなさそうですね。 え?   $contents = file_get_contents("file.txt"); じゃダメなんですか?No.1では単に「引数に指定するものが違う」と書いたのですけど。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

#急ぎすぎて大事なことを忘れた(汗 エラー抑制(@)は使いすぎないほうがいいです。 >$contents = @file_get_contents($fp); 本来、ここでエラーになって気付くハズなので・・

yuz1986
質問者

お礼

ありがとうございます。 fgetsで一行づつ取り込んで行くしかなさそうですね。 勉強になります。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

取り急ぎ・・ file_get_contents()の引数は「ファイル名(文字列)」です。 http://jp.php.net/manual/ja/function.file-get-contents.php

関連するQ&A