外部テキストファイル操作の方法と注意点

このQ&Aのポイント
  • 外部テキストファイルの操作方法として、まずはファイルを開く際にはファイルハンドルを作成し、ファイルを読み込むか書き込むかを指定します。
  • テキストファイルの書き換えにはファイルを書き込みモードで開き、その後ファイルポインタを移動させて書き換えたい位置に移動します。そして新しいデータを書き込みます。
  • updated.txtファイルを作成するためには、date.txtファイルを読み込み、データを加工してupdated.txtファイルに書き込みます。
回答を見る
  • ベストアンサー

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

外部テキストファイルの操作について悩んでおります。 アドバイスお願いします。 まず、外部テキストファイル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を作るための関数」です。 ファイル操作について、また簡単な例をあげていただけますと幸いです。どうぞ宜しくお願いいたします。

  • shevy
  • お礼率67% (703/1046)
  • PHP
  • 回答数1
  • ありがとう数3

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

  • ベストアンサー
  • mi-si
  • ベストアンサー率35% (200/567)
回答No.1

$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
shevy
質問者

お礼

ありがとうございます。 非常に参考になりました。 参考にさせていただきます。 ご丁寧にありがとうございました。

関連するQ&A

  • ファイル操作について、テキストファイルの書き換え

    よろしくお願いします。 データファイルAからデータを取得して、テキストファイルBの内容の一部を取得したデータで書き換えるという操作を行うプログラムを作りたいです。 具体的には、 データファイルA[A.txt]の中身 111 222 333 444 テキストファイルB[B.txt] 文字列1="123" 文字列2="234" 文字列3="345" 文字列4="456" というような二つのファイルを読み込み、B.txtの""で囲まれた部分を、A.txtで取得したデータで置き換えるような操作を行いたいのですが・・。 使用する言語としてはスクリプト言語であるperl、もしくはプログラム作成経験があるCを使用しようと思っています。(perlは未経験で入門書を読んでいるレベル)

    • ベストアンサー
    • Perl
  • Flashで外部テキストをテキストフィールドオブジェクトに読み込む方法

    FlashMXを使用しています。 外部テキストファイルをまず loadVariablesで読み込みました。 そして、その読み込んだテキストファイルの内容を、 ダイナミックテキストボックスに入れて表示させたいと思っています。 その際、テキストボックスには変数名をつけるのではなく、インスタンス名をつけることでテキストフィールドオブジェクトとしています。 以下、そのスクリプトです。 mc_text_fieldという名前のテキストフィールドオブジェクトに外部テキストの変数v_textのストリングを読み込ませようとしていますが、うまく作動しません。 タイムラインのスクリプト this.loadVariables("gaibu.txt"); mc_text_field.text=v_text; 外部テキストgaibu.txtの中身 v_text=こんにちは。 宜しくお願いします。 また、LoadVarsを使っても読み込むことは可能なのでしょうか。どちらがお薦めでしょうか。宜しくお願い致します。

  • テキストファイルについて

    拡張子にtxtのついたものは基本的にプレーンテキストだと認識していますが正しいでしょうか?しかしながら、ウインドウズのメモ帳のみならず、TeraPadのようなよりプログラミングのソースコードを記述するのに適していると言われるエディタでさえもフォント設定のメニューがあります。 ワープロではないいわゆるテキストエディタと言われるものにもこうしたフォントのメニューがあるということは、「txt」という拡張子を持つファイルはプレーンテキストだがそれをエディタで表示する際、エディタがフォントと呼ばれるものを付加しているのだと自分は思っていますが、「txt」拡張子のついたいわゆるプレーンテキストファイルというものであっても、再びそれらのファイルがエディタに読み込まれた時に作成時に設定したフォントが呼び出されるような最低限の情報が「txt」の拡張子のテキストファイルも持っているということでしょうか?そう考えると、フォント情報の全くない完全なプレーンテキストというものが本当に実在するのかよく分からないのですが・・・。「txt」拡張子付きのファイルはやはり何のフォント情報も持たないプレーンテキストであり、プレーンテキストにはそうしたフォントに関する情報は一切付与されておらず、エディタというソフトがそのテキストファイルのフォントに関する情報を覚えていて再び読み込んだとき前のテキスト表示が再現できるといった感じでしょうか?それでも最低限ソースコードを書いた時のフォント情報に繋がる最低限のデータはプレーンテキストというものも持っているのでしょうか? それともそうしたプレーンテキストとフォントの接続はOSがそうした働きをするのでしょうか?そのあたりの仕組みについてよく分かりません。

  • 外部のテキストファイルを読み込みたい

    はじめまして、phpを勉強しています。 ちょっとつまづいてしました。 質問をさせて下さい。 (phpは5.25の環境になります) $mainrss = array ( 'http://www.hoge.com/?feed=rss2', 'http://www.hoge2.com/?xml', 'http://www.hoge3.com/index20.rdf' ); $rssarray = array(); $today = date(U); foreach ($mainrss as $url){ $rss = fetch_rss($url); $title = $rss->channel['title']; $title = mb_convert_encoding($title, "UTF-8", "auto"); (省略) 上記の $mainrss = array ( 'http://www.hoge.com/?feed=rss2', 'http://www.hoge2.com/?xml', 'http://www.hoge3.com/index20.rdf' ); 部分を $mainrssarray = file('rss.txt'); として外部テキストファイルからデータを呼び込もうとしたのですがだめでした。 rss.txtの内容 'http://www.hoge.com/?feed=rss2', 'http://www.hoge2.com/?xml', 'http://www.hoge3.com/index20.rdf' どのようにすれば外部のテキストファイルから呼び込んでくれるでしょうか? 初心者的な質問で大変申し訳ないんですが、アドバイスをよろしくお願い致します;;

    • ベストアンサー
    • PHP
  • ダイナミックテキストに表示

    FLASHで外部テキストから取得した変数をダイナミックテキストに表示したいのですが、やり方がわかりません。 ダイナミックテキストの変数名がtestだとして、テキストファイルの中に test=テキスト と記述すれば問題ないのですが、 テキストファイルに hensu=テキスト と記述してhensuの中身をtestに格納するという事はできないのでしょうか?

    • ベストアンサー
    • Flash
  • 外部テキストファイル読み込み

    PHPで外部テキストファイルを読み込む際に セキュリティの面で気を付ける点などを教えてください。 どんなにがんばっても完璧ってことはないでしょうけど 最低コレぐらいはしておいたほうがいいよ、ぐらいの アドバイス下さい

    • 締切済み
    • PHP
  • テキストファイルを一つにまとめる

    一つののフォルダ内に複数のテキストファイルがあります a.txt b.txt c.txt があり内容はそれぞれ 日付 商品名 数量と同一項目にしてあります これを同じフォルダに自動で一つのファイルにまとめる方法はありませんか 超初心者です よろしくお願いします

  • ファイルの作成方法…

    VBでテキストファイルの中身を開くプログラムを作成しました。 そのテキストファイルの中身を変更(編集)し、それを同じファイルに上書き保存するのではなく、開いたファイルのある同じフォルダ内に新しいファイルを作り保存したいと思っています。  <例>test1.txtというファイルを開き中身を編集してそれを同じフォルダ内に新しくtest2.txtというファイルを作って保存するといった感じです。 そこで新しいファイル名で保存する(新しいファイルを作成する)方法を教えて欲しいんです、こんな説明で分かってもらえるか不安ですが…、どなたか分かる方教えていただけませんでしょうか? かなりの初心者なのですが、私でも理解できるようなプログラムだと嬉しいです。 よろしくお願いします。

  • 外部テキストの読み込み

    Flash lite1.1で、外部テキストの読み込みが実現できません。 text.txtファイルをswfと同じフォルダに作成し、中身を「text=あいうえお」にしました。 swfのほうでダイナミックテキストで変数を「text」にし、同じシーンのボタンに下のスクリプトを記述 しました。 // on (press) { loadVariables("text.txt",0); } // よろしくお願いします。

    • ベストアンサー
    • Flash
  • Flashで外部ファイルの指定行のみ取り出し表示

    初心者です。 当初は、ActionScriptで外部ファイルphpを読み込み、phpの中にtxtから取り出した文字列を表示しようとしていました。 多分、これでもできると思いますが、ActionScriptからphp経由せず、直接txtから取り出せないかと思い、質問します。 ActionScriptで外部ファイル(txt)の中身の2行目だけ取り出すという方法はできるのでしょうか? <テキスト例(txt)> 花子 東京都 乙女座 このうち2行目の東京都だけ取り出すということです。 こちらの方が、phpをわざわざ挟まずにシンプルだと思いました。 よろしくお願いします。

    • ベストアンサー
    • Flash