PHP アドバンス

PHP ファイル操作

1. PHP ファイル操作の概要

ファイル操作(File Handling)は、あらゆるウェブアプリケーションにおいて重要なパーツです。さまざまなタスクを処理するために、ファイルを開いたりプロセス(処理)したりする必要が頻繁に発生します。

PHP には、ファイルの作成、読み込み、アップロード、編集を行うための便利な組み込み関数(Built-in Functions)が多数用意されています。

1.1 ファイル操作の主要な関数

ファイルハンドリングで使用されるコアな関数は以下の通りです。

  • readfile() - ファイルを読み込み、それを出力バッファ(Output Buffer)に書き出します。
  • fopen() - ファイルをオープンします(readfile() 関数よりも多くのオプションが指定可能です)。
  • fread() - オープンされたファイルから読み込みを行います。
  • fgets() - ファイルから一行だけ読み込みます。
  • fgetc() - ファイルから一文字だけ読み込みます。
  • feof() - 「ファイル終端(EOF)」に達したかどうかをチェックします。
  • fwrite() - ファイルに書き込みます。
  • fclose() - オープンされているファイルをクローズします。
  • unlink() - ファイルを削除します。

注意: ファイルを操作(マニピュレーション)する際は、細心の注意を払ってください!
操作を誤ると、大きなダメージを与える可能性があります。よくあるエラーとしては、「間違ったファイルの編集」「ハードドライブをゴミデータで一杯にする」「誤ってファイルの内容を削除してしまう」などが挙げられます。

2. PHP readfile() 関数

readfile() 関数は、ファイルを読み込み、その内容を出力バッファ(通常はブラウザ)に直接書き出します。

ここでは、サーバー上に保存されている "webdictionary.txt" という名前のテキストファイルを例にします。中身は以下の通りです。

webdictionary.txt:

AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language

このファイルを読み込んで出力バッファに書き出す PHP コードは以下のようになります。

実装例:

<?php
// ファイルを読み込んでブラウザに出力する
echo readfile("webdictionary.txt");
?>

readfile() 関数は、「単にファイルを開いて、その内容をブラウザに流し込みたい(書き出したい)」というケースにおいて非常に便利で効率的です。