[PHP-users 2888] Re: 投票フォームについて

f.t. php-users@php.gr.jp
Thu, 18 Oct 2001 19:42:48 +0900


fujiyamaです。

On Thu, 18 Oct 2001 18:54:33 +0900
"Seiju Taniguchi" <seiju@digiboutique.jp> wrote:

> 投票フォームをデータベースを使わないで作っています。
> DBの代わりに、現在どの項目に幾つ投票されているかの情報を保持させる
>  ファイルを作って、投票ごとにそのファイル内の値を取り出して表示させようと
>  しています。
> ファイルは数字が縦に並んでいて、その2行目の値に1を足す、とか、4行目の
>  値に1を足す、という風に簡単にできそうなのですが、上手く行きません。
> PHPにファイルの3行目を取り出す関数は無いか、調べたのですが、どうも
>  無いようです。
> exec()から$f1_v に値を代入するとき、数値が1や3などの一桁だとなぜか
>  代入されません。
> うーん。どなたか、このような一時ファイルを使うやり方で投票フォームを
>  作られた方、アドバイス頂けないでしょうか。
> 
> $f1_v = exec("sed -n '3p' ./buffer_file.txt");  ←ファイルから任意の項目(この場合3行目)
>                                                                     での投票数を読み込む
> 
> $buffer_file = fopen("./buffer_file.txt","w");  
> fwrite($buffer_file, "$f1_v\n$f2_v");          ←1を加えてファイルに戻す。
> fclose($buffer_file);

file()を使ったら何行目かは簡単に取れると思うのですが、
そうしないのは、
・速度重視のためファイルを全部読み込みたくないから使っていない
とか?
う〜む、想像力&勉強不足でよくわかりません。相当的外れかも。

ところで、↑のコードだとbuffer_file.txtの3行目以前は消されると思うので
すがいいんでしょうか?
($f2_vはbuffer_file.txtの$f1_v以外の部分?)

 
> -----buffer_file.txt ファイル-----
> 2
> 12
> 3    ←例えばこれがゴルフに投票された回数であるとする。
> 11
> ----------------------------

後で分からなくなりそうと思うのは私だけでしょうか??


いつもご迷惑かけます。 
f.t. <fujiyama@pc.mycom.co.jp>