« Phar::hasMetadata
Phar::isBuffering »

Phar::interceptFileFuncs

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::interceptFileFuncs — fopen、file_get_contents、opendir などの stat 関連の関数をすべて phar に横取りさせる

説明

final public static function Phar::interceptFileFuncs(): void

fopen() や readfile()、 file_get_contents()、opendir() などの stat 関連の関数をすべて phar に横取りさせます。 phar アーカイブ内で相対パスを指定してこれらの関数がコールされると、 それが phar アーカイブ内のファイルへのアクセスに変更されます。 絶対パスの場合は、ファイルシステム上の外部ファイルを指すものとみなされます。

この関数を使用すると、ハードディスク上で動作するように作られている PHP アプリケーションを phar アプリケーションにまとめられるようになります。

パラメータ

パラメータはありません。

戻り値

例

例1 Phar::interceptFileFuncs() の例

<?php
Phar::interceptFileFuncs();
include 'phar://' . __FILE__ . '/file.php';
?>

phar ファイルの場所が /path/to/myphar.phar で、その中に file.php と file2.txt が存在するものとします。 file.php にこのようなコードが含まれていた場合、

例2 Phar::interceptFileFuncs() の例

<?php
echo file_get_contents('file2.txt');
?>

通常は、PHP はカレントディレクトリの file2.txt を探します。カレントディレクトリの場所は、file.php と同じ場所かあるいは コマンドラインで実行した際のカレントディレクトリとなります。 Phar::interceptFileFuncs() を使用した場合は、 PHP はカレントディレクトリを phar:///path/to/myphar.phar/ とみなし、上のコードの場合は phar:///path/to/myphar.phar/file2.txt をオープンします。

関連キーワード:
phar   Phar   interceptFileFuncs   contents   fopen   opendir   stat   関連   横取り   カレントディレクトリ   場所   path   myphar   アーカイブ   アプリケーション   コード   hasMetadata   isBuffering   final   static   readfile   相対   絶対パス   ファイルシステム   外部
関連する関数・ページ:
phar.setalias   phar.construct   phar.isfileformat   phar.delete   phar.hasmetadata   phar.offsetunset