phar档案中的静态内容

fac*_*cha 7 php phar

我只是想知道将静态内容添加到phar档案(图像,javascript或html文件)是否合法.如果是这样,我如何让它们服务于客户?

我到目前为止看到的唯一例子是:

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

但我想这不是一个可行的方法.

更新:以防万一有人会尝试做同样的事情.这段代码设置为phar存档的存根,对我有用:

<?php
    Phar::interceptFileFuncs();
    Phar::mungServer(array('REQUEST_URI'));
    Phar::webPhar();
    __HALT_COMPILER();
?>
Run Code Online (Sandbox Code Playgroud)

phar存档中的所有静态内容仍然通过php解释器,但至少不需要像设置头部mime类型和手动使用readfile()提供静态文件内容.phar存根中的这些功能使其看起来透明.

Cha*_*les 7

但我想这不是一个可行的方法.

因为在phars中唯一可以看到的是PHP,让PHP提取内容并回显结果几乎是唯一的方法.

您可能会发现PHAR扩展上的PHP手册页很有用,并且webPhar方法特别有启发性. interceptFileFuncs也可以派上用场.