fopen() · fread() · fclose() — 基本のファイル読み込み
// ファイルの入出力: ファイルの読み出し $filename = "test.txt"; clearstatcache(); // キャッシュをクリア(先に実行) $FP = fopen($filename, "r"); if ($FP) { $contents = fread($FP, filesize($filename)); echo $contents; fclose($FP); } else { echo "ファイルが開けませんでした。"; }
POINT 01
3ステップで読み込み
開く → 読む → 閉じる の手順が明確。大きなファイルや細かい制御が必要な場合に使う。
POINT 02
clearstatcache() の位置
filesize() を呼ぶ前に実行すること。後では意味がない。
POINT 03
エラーハンドリング
if ($FP) でファイルが開けたか確認。開けなかった場合のメッセージも必ず用意する。
3つの関数を比較する
// (1) file_get_contents() — 文字列として取得 $contents2 = file_get_contents($filename); print_r($contents2); // 結果: "こんにちは\nテストです"(1つの文字列) // (2) file() — 配列として取得(1行ずつ) $contents3 = file($filename); print_r($contents3); // 結果: Array ( [0] => こんにちは [1] => テストです ) // (3) URL も読み込める $contents4 = file_get_contents("https://example.com/sample.txt"); print_r($contents4);
| 関数 | 戻り値 | URL対応 | 主な用途 |
|---|---|---|---|
| file_get_contents() | 文字列 | ✅ 可能 | シンプルに全文取得・URL読み込み |
| file() | 配列 | ✅ 可能 | 行ごとに処理したい場合 |
| fopen/fread/fclose | 文字列 | ⚠️ 条件付き | 大きいファイル・細かい制御 |
ファイル読み込み — 実際の活用場面
-
設定ファイルの読み込み APIキーやDB接続情報を config.txt に保存し、PHPから読み込む。ソースコードに直接書かずに済む。
-
ログファイルの解析 access.log を読み込み、管理画面に表示。誰がいつアクセスしたか確認できる。
-
データベースのバックアップ DBから情報を取得し、ファイルに保存・復元する際に使用。
-
ファイルのアップロード処理 ユーザーがアップロードしたファイルをサーバーに保存・管理する。
-
テキスト・CSV処理 CSVファイルをパースして集計・表示。特定形式のログを解析して必要な情報を取り出す。
-
簡易CMS(お知らせ管理) news.txt を更新するだけでサイトの内容が変わる。データベース不要の軽量な仕組み。
file_get_contents(URL) — URL読み込みの活用場面
// URLのHTMLコンテンツを取得(CSS・画像は読み込まれない) $html = file_get_contents("https://example.com/sample.txt"); print_r($html);
-
ウェブスクレイピング ニュースサイトから最新記事の見出し取得、製品ページから価格情報の収集など。
-
ウェブモニタリング 特定ページのコンテンツが変更されたか定期チェック。変更検出時にアラートを送信。
-
データ分析 競合他社の製品情報を収集して市場動向を把握。外部APIのJSONデータ取得。
-
テスト・検証 ウェブページのHTML構造や内容をテスト。コンテンツが期待通りに表示されているか確認。
⚠️ 注意事項
ウェブスクレイピングを行う場合は、対象サイトの利用規約・robots.txtに必ず準拠してください。
また、サイト所有者から明示的な許可を得ることが重要です。
サーバー設定によっては
allow_url_fopen が無効になっている場合もあります。