Php 修改PHAR文件

Php 修改PHAR文件,php,phar,Php,Phar,我需要修改一个PHAR文件。每当我更改文件并执行它时,都会收到以下错误消息: Fatal error: Uncaught exception 'PharException' with message SHA1 signature could not be verified: broken signature' 通过做一些研究,我发现我可以 提取phar,修改它,然后“将其放回phar文件”。我该怎么做 或者在my php.ini中设置phar.require\u hash=false以禁用签

我需要修改一个PHAR文件。每当我更改文件并执行它时,都会收到以下错误消息:

Fatal error: Uncaught exception 'PharException' with message SHA1 signature could not be verified: broken signature'
通过做一些研究,我发现我可以

  • 提取phar,修改它,然后“将其放回phar文件”。我该怎么做

  • 或者在my php.ini中设置
    phar.require\u hash=false以禁用签名检查。不幸的是,这并没有解决问题


我只需要对文件做一些简单的修改,而且我是唯一一个使用它的人,所以我更喜欢一个快速简单的解决方案,你不能简单地在编辑器中更改phar内容,就像你不能在
.zip
.tbz2
文件中那样


唯一可行的解决方案是提取phar,修改提取的文件,然后重新打包phar文件。

问题是,在Symfony网站上,安装命令如下所示:

c:\> php -r "readfile('http://symfony.com/installer');" > symfony
正确的命令是

c:\> php -r "readfile('http://symfony.com/installer');" > symfony.phar

然后将文件
symfony.phar
移动到创建项目的任何位置,或者只需将文件
symfony
重命名为
symfony.phar
。如果文件名为just
symfony
则会出现此错误“sha1签名无法验证已损坏的签名”,因为更改文件名也会使sha1无效(散列就是这样工作的)。

您使用过您的研究吗?第二个解决方案似乎是最简单的;只需将
phar.require\u hash=0
添加到php.ini。试试看!我把它添加到我的php.ini中,但仍然得到相同的错误。你重启服务器了吗?