練習問題

10.7 練習問題

本章で習った内容を元に練習問題を解いてください。

問1 次の設問①~⑤について○か×で答えなさい。

設問
① ファイルオープン後、メイン処理に影響しないがクローズ処理は行うほうがいい。
② ファイルオープンのモードには、「読み込み」、「新規書き込み」しかない。
③ 読み込んだファイルの1行データを読み出す場合、fgets関数で取得する方法がある。
④ ファイル操作を行う前に、処理が複雑になるためファイルの事前確認は行わないほうがいい。
⑤ ファイルアップロードする場合、formのmethod属性はGET、POSTどちらでも行える。

問2 次のcsvファイルを読み込み、以下の実行結果になるソースコードpractice1001.php作成しなさい。

listData.csvファイル(practice1001.phpファイルと同じディレクトリ内に準備する)

実行結果

ソース・フォルダー: myproj_basic/ch10exercise
パッケージ: practice1001.php
アクセスURL:http://localhost/myproj_basic/ch10exercise/practice1001.php

作成ヒント

①ファイルの事前確認は、このプログラムでは行う必要はない。
②読み込んだファイルデータはwhile文とfeof関数を組み合わせて全て読み出して処理する。
③カンマ区切りデータはfgetcsv関数を使って処理する。
④ヘッダー行(Name,age)は条件文で判定し、画面に表示しないようにスキップする。

問3 問2のcsvファイルを使い、以下のようにファイル出力を行うpractice1002.phpを作成しなさい。

outData.txtファイル出力結果(practice1002.phpファイルと同じディレクトリ内に出力する)

実行結果

ソースコード

ソース・フォルダー: myproj_basic/ch10exercise
パッケージ: practice1002.php
アクセスURL:http://localhost/myproj_basic/ch10exercise/practice1002.php

作成ヒント

①ファイルの事前確認は、このプログラムでは行う必要はない。
②合計人数を数えるための変数を用意し、全データを読み出す繰り返し処理内で1ずつ加算していく。
③年齢の合計を算出するための変数を用意し、全データを読み出す繰り返し処理内で年齢を加算していく。
④書き込みにはfput関数を利用する。
⑤名前と年齢データは、全データを読み出す繰り返し処理内で書き込んでいく。
⑥合計人数と平均年齢は、全データの読み出しが終わった後に書き込む。

問4 以下の設問に合う関数を選択肢より選んで答えなさい。

設問

①ファイルが存在し、読み込み可能か確認する。
②ファイルが存在し、書き込み可能が確認する。
③ファイルが存在するか確認する。

選択肢

is_writable isset file_exists empty is_readable

NEXT>> 10.8 練習問題 解答