phar 存档中的静态内容
Posted
技术标签:
【中文标题】phar 存档中的静态内容【英文标题】:Static content inside phar archive 【发布时间】:2011-10-10 15:02:53 【问题描述】:我只是想知道将静态内容添加到 phar 档案(图像、javascript 或 html 文件)是否合法。如果是这样,我如何让他们为客户服务?
目前我看到的唯一例子是:
<?php
header('Content-type: image/jpeg');
echo file_get_contents('phar:///fullpath/to/coollibrary.phar/images/wow.jpg');
?>
但我想这不是一条路。
更新: 以防万一有人会尝试做同样的事情。这段代码集作为 phar 存档的存根对我有用:
<?php
Phar::interceptFileFuncs();
Phar::mungServer(array('REQUEST_URI'));
Phar::webPhar();
__HALT_COMPILER();
?>
phar 存档中的所有静态内容仍然通过 php 解释器,但至少不需要手动设置 header mime 类型和使用 readfile() 提供静态文件内容。 phar 存根中的那些函数使它看起来透明。
【问题讨论】:
【参考方案1】:但我想这不是一条路。
因为可以在 phars 中查看的唯一内容是 PHP,所以让 PHP 提取内容并回显结果几乎是唯一的方法。
您可能会发现the PHP manual page on the PHAR extension 很有用,而the webPhar
method 特别有启发性。 interceptFileFuncs
也很方便。
【讨论】:
不一定是唯一的方法,您仍然可以添加静态文件缓存并使用.htaccess
文件或发送x-sendfile
标头。我很好奇 phar 对大文件有什么作用,它是否通过将它们发送到输出来在内存中读取它们?他们是否有内存或超时问题?以上是关于phar 存档中的静态内容的主要内容,如果未能解决你的问题,请参考以下文章