関数・クラス解説

Phar::webPhar

version:PHP 5 >= 5.3.0, PHP 7, PECL phar (公式)

ウェブベースの phar で使用するフロントコントローラ

公式リファレンス

書式

final public static Phar::webPhar ([ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, callable $rewrites ]]]]] ) : void

説明

Phar::mapPhar() は、ウェブベースの phar で使用します。 このメソッドは、 $_SERVER['REQUEST_URI'] をパースして ウェブサーバーからのリクエストを phar アーカイブ内のファイルに転送します。 要は、このメソッド自体がウェブサーバーをシミュレートするということです。 正しいファイルにリクエストを転送し、正しいヘッダを出力し、 必要に応じて PHP ファイルをパースします。 この強力なメソッドがあることで、 既存の PHP アプリケーションを phar アーカイブ化するのが容易になります。 Phar::mungServer() や Phar::interceptFileFuncs() と組み合わせて使用すると、任意のウェブアプリケーションをそのまま phar アーカイブ化することができます。

Phar::webPhar() をコールするのは、 phar アーカイブのスタブ内からのみとしましょう (スタブって何? という方は ここ をごらんください)。

パラメータ

alias
phar:// URL でこのアーカイブを指す際に、 フルパスの代わりに使用するエイリアス。
index
phar の中でディレクトリインデックスとなるファイルの場所。
f404
ファイルが見つからないときに実行するスクリプトの場所。 このスクリプトは HTTP 404 ヘッダを返さなければなりません。
mimetypes
ファイルの拡張子と MIME タイプを関連付けた配列。 デフォルトのマッピングで十分な場合は、空の配列を渡します。 デフォルトで、これらの関連が定義されています。
$mimes = array(     'phps' => Phar::PHPS, // highlight_file() に渡します     'c' => 'text/plain',     'cc' => 'text/plain',     'cpp' => 'text/plain',     'c++' => 'text/plain',     'dtd' => 'text/plain',     'h' => 'text/plain',     'log' => 'text/plain',     'rng' => 'text/plain',     'txt' => 'text/plain',     'xsd' => 'text/plain',     'php' => Phar::PHP, // PHP としてパースします     'inc' => Phar::PHP, // PHP としてパースします     'avi' => 'video/avi',     'bmp' => 'image/bmp',     'css' => 'text/css',     'gif' => 'image/gif',     'htm' => 'text/html',     'html' => 'text/html',     'htmls' => 'text/html',     'ico' => 'image/x-ico',     'jpe' => 'image/jpeg',     'jpg' => 'image/jpeg',     'jpeg' => 'image/jpeg',     'js' => 'application/x-javascript',     'midi' => 'audio/midi',     'mid' => 'audio/midi',     'mod' => 'audio/mod',     'mov' => 'movie/quicktime',     'mp3' => 'audio/mp3',     'mpg' => 'video/mpeg',     'mpeg' => 'video/mpeg',     'pdf' => 'application/pdf',     'png' => 'image/png',     'swf' => 'application/shockwave-flash',     'tif' => 'image/tiff',     'tiff' => 'image/tiff',     'wav' => 'audio/wav',     'xbm' => 'image/xbm',     'xml' => 'text/xml', );
rewrites
書き換え関数は、唯一のパラメータとして文字列を受け取り、string あるいは FALSE を返さないといけません。 fast-cgi あるいは cgi を使っている場合、この関数に渡されるパラメータは $_SERVER['PATH_INFO'] の値になります。 それ以外の場合、この関数に渡されるパラメータは $_SERVER['REQUEST_URI'] の値になります。 文字列を返した場合は、内部的なファイルパスとして扱います。FALSE を返した場合は、 webPhar() が HTTP 403 を送信します。

返値

値を返しません。

エラー

出力したい内部ファイルのオープンに失敗した場合、 あるいはスタブ以外からコールした場合には PharException をスローします。 無効な配列を mimetypes に渡したり、 無効なコールバックを rewrites に渡したりした場合は UnexpectedValueException をスローします。

サンプル

例1 Phar::webPhar() の例

この例で作成した phar は、/myphar.phar/index.php や /myphar.phar をブラウズしたときには Hello World を表示し、 /myphar.phar/index.phps をブラウズしたときには index.phps のソースを表示します。

// phar アーカイブを作成します try {     $phar = new Phar('myphar.phar');     $phar['index.php'] = ' ';    $phar['index.phps'] = '  echo "Hello World";  ';    $phar->setStub(' Phar::webPhar(); __HALT_COMPILER();  ');} catch (Exception $e) {    // ここでエラー処理をします}?>

参考

  • Phar::mungServer() - 最大 4 つまでの $_SERVER 変数を実行時に変更させる
  • Phar::interceptFileFuncs() - fopen、file_get_contents、opendir などの stat 関連の関数をすべて phar に横取りさせる
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール