PHPのノート17 – 関数5(ファイル関数とファイル操作)
ファイル関数
ファイルを操作する関数。
これらを使ってファイルを操作する。
file_exists
ファイルに対してなんらかの操作をするときは必ず存在チェックをしなければならない。
そのための関数。
この例ではtest.datというファイルを用意して動作確認しています。
$testFile = "test.dat"; if (file_exists($testFile)){ echo "存在します!"; } else { echo "ありません!"; }
確認
→note17_01
is_writable
対象のファイルが書き込み可能かどうかを調べる関数。
対象のファイルが存在しなければ書き込みは不能となるのでfile_existsはis_writableで
代替される場合が多い。
$contents = "こんにちは!"; if (is_writable($testFile)){ echo "writable"; } else { echo "not writable! - 存在しないかも"; }
確認
→note17_02
fopen
ファイルを開く関数。
a = append追加
w = write上書き
r = read読み取り
$testFile = "test.dat"; if (is_writable($testFile)){ $fp = fopen($testFile, "a"); if (!$fp) { echo "オープンできません!"; exit; }
確認
→note17_03
$fpにtestFileを開いて内容を代入する。
できなければオープンできませんと表示する。
というプログラムを、スマートに書くと
$testFile = "test.dat"; if (!$fp = fopen($testFile,"r")){ echo "File could not open!"; exit; }
となる。
もし$fpにtestFileを開いて中身を代入していなければFile could not open!と表示する。
確認
→note17_04
file_existsからの文のチェックはtest.datを準備した状態としていない状態で確認すればわかりやすい。
fwrite
ファイルを保存する関数。
if (fwrite($fp,$contents) === false){ echo "書き込み失敗!"; exit; }
「===」は型も内容も含めて同じかどうかの比較演算子
fclose
ファイルを閉じる。
fclose($fp);
fwriteとfcloseはfopenで開いていないと動作確認できないので、
それらを連結したもので確認してみる。
$testFile = "test.dat"; $contents = "こんにちは!"; if (is_writable($testFile)){ $fp = fopen($testFile, "a"); if (!$fp) { echo "オープンできません!"; exit; } if (fwrite($fp,$contents) === false){ echo "書き込み失敗!"; exit; } echo "書き込み成功!"; fclose($fp); } else { echo "NOT writable! - 存在しないかも"; }
ファイルの中身の読み込み
fread
ファイルの中身を読み込む。
$testFile = "test.dat"; $contents = "こんにちは!"; if (!$fp = fopen($testFile,"r")){ echo "File could not open!"; exit; } $contents = fread($fp, filesize($testFile)); echo $contents; fclose ($fp);
fileseizはファイルをそのままのサイズで読み込むということ。
決まり文句的に使う。
file_get_contentsとfile
読み込みに関してはfopenやfile_exists、is_writableなどで逐一チェックせずとも
file_get_contentsで読み込み可能。
また、fileは変数(ファイルの中身)を配列で読み込む。
$testFile = "test.dat"; $contents = file_get_contents($testFile); echo $contents; echo ("<br />"); $contents =file($testFile); var_dump($contents);
ファイルの書き込み系の確認は現時点ではネット上でやるのは危ないのでローカルにて確認。
注意事項
- 自分用の覚書です。
- 自分が後から読んで理解できる程度にはしょったりまとめたりしています。
- 後で誤りに気付いた時は随時訂正しています。
- 「よくわかるPHPの教科書」と「ドットインストール」で勉強したのでそれらをなぞっています。