7

静的コンテンツを phar アーカイブ (画像、javascript、または html ファイル) に追加することが合法かどうか疑問に思っていました。もしそうなら、どうすればそれらをクライアントに提供することができますか?

これまでに見た唯一の例は次のとおりです。

<?php
header('Content-type: image/jpeg');
echo file_get_contents('phar:///fullpath/to/coollibrary.phar/images/wow.jpg');
?>

しかし、これは行くべき道ではないと思います。

UPATE: 誰かが同じことをしようとしている場合に備えて。phar アーカイブのスタブとして設定されたこのコードは、私にとってはうまくいきました。

<?php
    Phar::interceptFileFuncs();
    Phar::mungServer(array('REQUEST_URI'));
    Phar::webPhar();
    __HALT_COMPILER();
?>

phar アーカイブ内のすべての静的コンテンツは引き続き php インタープリターを通過しますが、少なくとも、ヘッダーの MIME タイプを設定したり、readfile() を使用して手動で静的ファイルのコンテンツを提供したりする必要はありません。phar スタブ内のこれらの関数により、透明に見えます。

4

1 に答える 1

7

しかし、これは行くべき道ではないと思います。

phar の内部を見ることができるのは PHP だけであるため、PHP でコンテンツを抽出し、結果をエコーすることがほぼ唯一の方法です。

PHAR 拡張機能の PHP マニュアル ページが役に立ち、メソッドwebPhar特に啓発 的であることに気付くかもしれません。interceptFileFuncsも便利かもしれません。

于 2011-07-21T21:55:06.023 に答える