首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Phar归档输出jibberish

Phar归档输出jibberish
EN

Stack Overflow用户
提问于 2009-10-16 11:18:58
回答 3查看 1.3K关注 0票数 2

我用以下代码创建了我的第一个phar归档文件:

代码语言:javascript
复制
$phar = new Phar('myphar.phar');
$phar->addFile("index.php");
$phar->setStub($phar->createDefaultStub('index.php', 'index.php'));

前面提到的index.php只执行一次输出:

代码语言:javascript
复制
echo "I am in a PHP archive!";

当我运行上面的代码时,会创建myphar.phar,当我在cli中运行时,输出是"I am in a PHP archive!“。但是,当我从when浏览器调用myphar.phar时,它会打印一些奇怪的字符,比如????�???�?,而不是我的index.php内容,并且没有错误。

我在我的apache httpd.conf中添加了下面这行代码来支持phar归档:

代码语言:javascript
复制
AddType application/x-httpd-php .phar

有没有人知道为什么它在cli上工作,而不是在浏览器上工作?

EN

回答 3

Stack Overflow用户

发布于 2010-06-25 16:05:18

这个问题的答案在于

代码语言:javascript
复制
detect_unicode

您的php.ini中的设置。

当前PHP (http://bugs.php.net/bug.php?id=42396)中存在一个错误,如果启用了detect_unicode,则会导致__halt_compiler()无法正常工作。

因此,作为临时解决方法,请设置

代码语言:javascript
复制
detect_unicode = Off

在你的php.ini里。你必须付出的代价是不能使用unicode字符作为变量、函数和类的名称(它们仍然可以在注释和字符串中使用)

票数 6
EN

Stack Overflow用户

发布于 2009-10-16 19:59:25

你有没有试过查看网页的源代码?也许你在修改httpd.conf之后忘记了重启Apache。

票数 0
EN

Stack Overflow用户

发布于 2009-10-16 12:23:17

我对phar文件的理解是,你应该在你的php脚本中打开(Fopen)文件,你将被calling....if,你会得到那些字符,这意味着apache正在以二进制格式发送文件给你。

如果您将这个"AddType应用程序/x-gzip .gz .tgz .phar“添加到apache配置中,它将使该文件像任何其他归档文件一样可下载,并且不会像php脚本那样执行它。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1577479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档