我只是想知道将静态内容添加到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存根中的这些功能使它看起来透明。
答案 0 :(得分:7)
但我想这不是一种方法。
因为在phars中唯一可以看到的是PHP,让PHP提取内容并回显结果几乎是唯一的方式。
您可能会发现the PHP manual page on the PHAR extension有用,而the webPhar
method尤其具有启发性。 interceptFileFuncs
也可以派上用场。