サブノート

技術的なトピックが中心の備忘録

[PHP]ファイルオープン時はエラーチェックを行う

ファイル読み書きの際は fopen() を使う。
「ファイルがない」「権限がない」等のエラー時に FALSE を返すので、チェックをしていないとその後の処理で

Warning: fgetcsv() expects parameter 1 to be resource, boolean given in [ファイルパス] on line [行数]

等々のエラーが発生する。
下記のようなエラーチェックは必須。

<?php
/** CSVファイルの内容を取得 **/
public function loadData($filename)
{
  $fp = fopen($filename, "r");
  if($fp === FALSE) {
    //エラー
    throw new Exception('Error: Failed to open file (' . filename . ')');
  }

  //CSVの内容を取得
  while (($data = fgetcsv($fp, 0, ",")) !== FALSE) {
    $ret[] = $data;
  }

  fclose($fp);

  return $ret;
}
?>