このページは、PHP の ファイル処理のスニペットなどをまとめる予定のページです。
目次
注意
- コードのライセンスは CC0 (クレジット表示不要、改変可、商用可) です。
スニペット
ディレクトリの生成
ファイルの削除
パス情報の取得
file_get_contents()
file_put_contents()
ファイル・ディレクトリパス一覧取得
ファイルのダウンロード
- php.netのサンプル に以下を追加・変更しています。
- サーバーが Windows の場合ファイルパスを SJIS に変換
(file_exists()
が false になるのを防ぐ。プログラムと他のサーバーの文字エンコーディングは UTF-8 想定です)
- ファイル名が日本語でも対応できるようにする
(filename*
形式。IE9以降のブラウザでは基本的に対応されています)
- 出力バッファ (
output_buffering
の設定や ob_start()
) が有効な場合でもダウンロードができるようにするようにバッファクリアする
(出力バッファ有効時に容量の大きなファイルを readfile
するとダウンロード時に出力バッファが詰まってダウンロードファイルのサイズが0バイトになる)
- レスポンスヘッダの変更
- Content-Description: 必須ではないので削除
- Content-Type: application/octet-stream → 適切なMIMEタイプを設定するよう変更
- Cache-Control: キャッシュを残さないように no-store に変更 (must-revalidate + Expires: 0 より直感的)
- Pragma: HTTP/1.0 用で今は不要なので削除
ユーティリティ関数
ZIP圧縮