2011-07-21 9 views
7

pharアーカイブ(画像、javascriptまたはhtmlファイル)に静的コンテンツを追加することが合法かどうかは不思議でした。もしそうなら、どうやってクライアントに奉仕するのですか?pharアーカイブ内の静的コンテンツ

私がこれまで見てきた唯一の例がした

<?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スタブのこれらの関数は、それを透明に見せます。

答えて

7

しかし、これは行く方法ではないと思います。

pharで内部を見ることができる唯一のことは、PHPの内容を抽出し、その結果はかなり行くための唯一のの方法であるエコー持つ、PHPですので。

the PHP manual page on the PHAR extensionが便利であり、特にthe webPhar methodが啓発されていることがあります。 interceptFileFuncsも便利です。

+0

必ずしも唯一の方法ではありませんが、静的ファイルキャッシュを追加して、 '.htaccess'ファイルを使うか' x-sendfile'ヘッダを送ることができます。私は巨大なファイルを持つpharを何にするのですか?それを出力に送ることでメモリ内で読み込みますか?それらはメモリやタイムアウトの問題がありますか? – inf3rno

関連する問題