phpその1(DEC) > phpその2(DEC)> php10days

第5日 関数利用(ファイル入出力)

1時限目:テキストベースのゲストブックに書き込む
2時限目:ゲストの内容を一覧表示する
3時限目:正規表現で自由ファーマットのテキストを検索する
Webアプリケーシヨンと言うと、とかくデータベースの方に目線が向きがちですが、データを簡単に操作し、また、異なる環境間でやり取りするには、テキストファイルは最適の媒体です。又、正規表現はそれ自体、非常に広範囲な仕事を提供しますが、理屈さえ理解してしまえば、さまざまな用途に応用できるようになります。

◆◆◆◆まとめ(1時限目)◆◆◆◆

●テキストファイルを操作するには、まず操作対象のファイルをfopen関数でオープンする必要があります。
●fopen関数では、後続の処理が読み取り、書き込み、追記いずれであるかによって、適切なモードを選択する必要があります。
●ファイルの操作後は、fclose関数でファイルをクロースします。
●ファイルシステム関数には、いくつかの設定パラメータが用意されています。ファイルがうまく読み込めない場合には、まず、これらの設定を確認してください。
●ファイルの書き込みを行なうには、fputs関数の役割です。
●ファイルの書き込みを行なう場合は、必ずその前後でファイルのロッキングを行なうべきです。これによって、同時アクセスによるデータの不整合を未然に防ぐことができます。
★簡単なゲストブックを作成。フォームから入力された名前、メッセージ、書き込み日時を決められたテキストファイルに記録。《古い順/半角のみ》

05サンプル(day05-1) ①guest_input.phpファイル day05-1.htmlファイル(ソース)
②guest_read.phpファイル day05-1.htmlファイル(ソース)
  ③guest_write.phpファイル day05-1.htmlファイル(ソース)
  ④guest.datファイル day05-1.htmlファイル(ソース)
①フォームからゲストブックへの書き込み。
②記録されたテキストファイル。
③フォームからゲストブックへの書き込み。
④ゲストブック「guest.dat」テキストファイル。
※《古い順/半角のみ(日本語は使用できません)》

◆◆◆◆まとめ(2時限目)◆◆◆◆

●タブ区切りのテキストやカンマ区切りテキストを順番に読み込むには、fgetcsv関数を利用すると便利です。
●ファイルポインタは、ファイルの読込み位置を記録するための目印です。ファイルポインタは、ファイルが開かれた時点でファイルの先頭に位置しています。
●配列の末尾に要素を追加するには、「$配列名[]=値;」の形式で設定します。
★ゲストブックの内容を書き込みの新しい順にリスト出力。

05サンプル(day05-2) ①guest_input.phpファイル day05-2.htmlファイル(ソース)
②guest_read2.phpファイル day05-2.htmlファイル(ソース)
③guest_write_v2.phpファイル day05-2.htmlファイル(ソース)
④guest.dat day05-2.htmlファイル(ソース)
①フォームからゲストブックへの書き込み。
②「guest.dat」記録された情報を表示。
③新しい記事から順に表示するする様に保存。
④ゲストブック「guest.dat」テキストファイル。
※空白処理はしていません。

◆◆◆◆まとめ(3時限目)◆◆◆◆

●正規表現パターンを利用することで、非定型のデータから特定の文字列を取り出したり、置換えを行なうことができます。
●正規表現のマッチングを行なうには、ereg/eregi関数を利用します。
●正規表現による置き換え、分割を行なうには、ereg_replace/eregi_replace、split/spliti 関数を使用します。
●正規表現による置換えでは、置換え後の文字列にマッチングした文字列を含めることができます。
●日本語を含む正規表現パターンを利用する場合は、マルチバイト関数を利用してください。
★URL文字列だけを抽出。

05サンプル(day05-3) ①regex.phpファイル day05-3.htmlファイル(ソース)
①data.datからURL文字列を抽出。
②data.datデータ。