確認画面で取得した情報を指定の場所に送信するプログラムを作ろうと思っていたのですが、自分の担当ではなかったため、練習として取得した情報を自分のテキストファイルに書き込むという作業を行いました。いろいろファイルに書き込む方法があるみたいなのですが、今回は複数の文字列を書き込むため配列を使いテキストファイルに書き込む方法を学びました。下記のソースを送信用に作ったファイルに書き込みます。
\$text = array(\$name,\$hurigana,\$tel_01."-".\$tel_02."-".\$tel_03,\$email,\$example1);
\$text_name = date("YmdHis").".txt"; //テキストファイル名
\$fp = fopen("\$text_name", 'w'); //\$text_nameが存在しない場合、ファイル作成
foreach (\$text as \$i){
\$i = preg_replace("/\r\n|\r|\n/", "<br>", \$i);
fputs(\$fp,"\$i\n"); //\$textを、ファイルに書き込み
}
fclose(\$fp);
まず、スーパーグローバル変数であるPOSTで引っ張ってきたものを配列の形にして、$textに代入します。次に取得した情報を書き込みたいテキストファイルを指定し、$text_nameに代入します。ここではdate()関数を使い、書き込まれた時の日時などをファイルに付けるようにしています。次にfopen()関数で指定したテキストファイルを開きます。ここでは、テキストファイルの指定はしていないので書き込まれたときに新しいファイルを作成するようにしています。そして、foreach文で配列で指定した要素を数分だけ$iに格納します。$iに格納された要素は改行されながら表示されていきます。preg_replace()は、引数が配列の場合は配列を、その他の場合は文字列を返す関数です。あとはfputs()関数でfopen()で開いたテキストファイルに$iで格納した要素を書き込み、最後にファイルを閉じて終了です。本来はメール送信機能を使ってやるらしいのですが、今回は練習なので自分のテキストに書けるようにしました。
11月22日 宮本 勇