首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP PHAR:再一次以适当的方式创建.phar

PHP PHAR:再一次以适当的方式创建.phar
EN

Stack Overflow用户
提问于 2014-10-31 05:09:34
回答 2查看 174关注 0票数 3

我正在尝试创建一个带有可执行存根的PHAR归档文件。代码:

代码语言:javascript
复制
<?php
$phar = new Phar('test.phar');
$phar->buildFromDirectory('files/');
$phar->setStub($phar->createDefaultStub(file_get_contents('st.php'), 'install.php'));
?>

"st.php“(默认存根)的内容:

代码语言:javascript
复制
#!/usr/bin/php
<?php Phar::mapPhar(); include("phar://test.phar/install.php"); __HALT_COMPILER();

在"files“中只有一个文件-- "install.php”

代码语言:javascript
复制
<?php
echo "The Installer is running right now.";
?>

PHAR编译过程运行时没有任何错误。但是当我尝试包含创建的PHAR归档文件时

代码语言:javascript
复制
include_once('phar://test.phar');

出现以下错误:

代码语言:javascript
复制
PHP Parse error:  syntax error, unexpected ''#!/usr/bin/php\r' (T_ENCAPSED_AND_WHITESPACE) in D:/WebServer/domains/modinst/www/test.phar on line 110

问题是:如何创建一个PHAR存档作为PHP资源,我可以简单地“包含”它?

EN

回答 2

Stack Overflow用户

发布于 2015-02-28 06:44:21

您不能在存根文件中使用shebang行。这是当前PHP版本的一个限制。

删除它,错误就会消失。

票数 2
EN

Stack Overflow用户

发布于 2020-01-11 17:53:26

要设置shebang,请使用:

代码语言:javascript
复制
$phar->setStub("#!/usr/bin/env php" . PHP_EOL 
    . $phar->createDefaultStub(file_get_contents('st.php')));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26663349

复制
相关文章

相似问题

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