こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

外部テキストファイルの書き換えと作成について

外部テキストファイルの操作について悩んでおります。
アドバイスお願いします。

まず、外部テキストファイルdate.txtファイルの中身は以下のような具合です。

2/19
2/18
2/09
2/14
2/17

というたった五行の日付情報です。

この日付情報をユーザーがhtml上(実際はdate.phpというファイルです)で自由に変更できるようにしたいというのが私の処理の理想です。


そこで、この日付情報のそれぞれをhtmlのinput type=textのvalue値として、まず読み込ませて表示させます。
そしてユーザーは5つそれぞれを書き換え、もしくはそのまま変更なしでもかまいませんが、最終的にsubmitでphpに送信します。(自分自身、date.phpに送信します。)

そのあと、date.txtファイルがユーザーの指定通りに書き換えられるという仕組みです。
さらに、その書き換えられた際に、date.txtファイルとは別に、updated.txtファイルを生成したいと思っています。(生成というか、常にdate.txtファイルの中身が変更される際に、updated.txtファイルも変更されるようにしたいということです。)
そのupdated.txtファイルの中身は、

v_hensu1=2/19&v_hensu2=2/17&v_hensu3=2/14&v_hensu4=2/17&v_hensu5=2/15

というようにしたいと思っています。改行は必要ありません。
date.txtの日付情報を上からそれぞれv_hensu1、v_hensu2に当てはめていって、それぞれを&でつなぐだけです。

以上で処理の流れは完了です。


そこでわからないのは、「最初にdate.txtファイルを開く際に使う関数」と、
次に「date.txtを書き換える際に使う関数」と、
「updated.txtを作るための関数」です。

ファイル操作について、また簡単な例をあげていただけますと幸いです。どうぞ宜しくお願いいたします。

投稿日時 - 2004-02-16 11:35:37

QNo.780902

すぐに回答ほしいです

質問者が選んだベストアンサー

$handle = fopen("date.txt","r");
読み込みモードでオープン

$handle = fopen("date.txt","w");
書き込みモードでオープン

$handle2 = fopen("update.txt","w+");
書き込みモードでオープンし、ファイルが無い場合は作成する。

$handleは、その後ファイルを取り扱う関数で利用するファイルハンドルを格納した変数ですので、必ず指定してください(名前はわかりやすい変数名をつけてください。)

$handleで開いたファイル(例では、date.txt)に変数を書き込む

$handle = fopen("date.txt","wt");
fwrite($handle,"$v_hensu1\n");
fwrite($handle,"$v_hensu2\n");
fwrite($handle,"$v_hensu3\n");
fwrite($handle,"$v_hensu4\n");
fwrite($handle,"$v_hensu5\n");
fclose($handle);


ファイルがない場合に作成する。

$handle = fopen("update.txt","w+t");
fwrite($handle,"$update_string\n");
fclose($handle);


読み込みの例

$handle = fopen("date.txt","rt");
if(!feof($handle)) { $v_hensu1 = fgets($handle); }
if(!feof($handle)) { $v_hensu2 = fgets($handle); }
if(!feof($handle)) { $v_hensu3 = fgets($handle); }
if(!feof($handle)) { $v_hensu4 = fgets($handle); }
if(!feof($handle)) { $v_hensu5 = fgets($handle); }
fclose($handle);

参考URL:http://www.php.net/manual/ja/function.fopen.php

投稿日時 - 2004-02-16 13:59:29

お礼

ありがとうございます。
非常に参考になりました。

参考にさせていただきます。

ご丁寧にありがとうございました。

投稿日時 - 2004-02-27 10:13:04

ANo.1

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問