- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 PHP 5.6 运行本地服务器。我正在使用第三方库,该库使用函数 __halt_compiler
。达到此功能后,我收到以下错误。
PHP Fatal error: Uncaught exception 'UnexpectedValueException' with message 'internal corruption of phar'. (__HALT_COMPILER(); not found)
我使用关键字 phar
和 __halt_compiler
进行的所有搜索都没有结果。以下是打印 phpinfo()
的一些细节。
Phar: PHP Archive support => enabled
Phar EXT version => 2.0.2
Phar API version => 1.1.1
Phar-based phar archives => enabled
Tar-based phar archives => enabled
ZIP-based phar archives => enabled
gzip compression => enabled
bzip2 compression => enabled
OpenSSL support => enabled
phar.cache_list => no value => no value
phar.readonly => On => On
phar.require_hash => On => On
有谁知道为什么我没有这个功能和/或如何获得它。
如果我可以提供更多信息,请告诉我。
最佳答案
Does anyone know why I don't have this function and/or how I can acquire it.
你得出了错误的结论。错误消息不会说“找不到函数”。
要理解它,您应该知道 phars 的内部工作原理。如果您在编辑器中打开一个 phar 文件,您应该会找到类似这样的内容:
#!/usr/bin/env php
<?php
Phar::mapPhar('filename.phar');
$application = require_once 'phar://filename.phar/src/bootstrap.php';
$application->setPharMode(true);
$application->run();
__HALT_COMPILER(); ?>
[binary content follows]
Phar 文件与任何其他 PHP 文件一样由 PHP 执行,归档源位于 __HALT_COMPILER()
语句后面。 Phar::mapPhar()
从 COMPILER_HALT_OFFSET
开始读取文件本身,即在 __HALT_COMPILER()
之后。
错误消息意味着,无法找到此 __HALT_COMPILER()
语句,并且 PHP 不知道从哪里开始读取实际的 phar。因此“phar 的内部腐败”。由于脚本至少运行并且不会立即因解析错误而失败,我猜二进制内容完全丢失了。在文本编辑器中打开 phar 进行查找。
我实际上不知道,为什么 phar 损坏了,但我可以想象当文件合并到一个存档中时,源代码中某处的 __HALT_COMPILER 将是一个问题。
关于未找到 PHP __halt_compiler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33719794/
下一次我会在函数 __halt_compiler 后看到一些字节码。在这种情况下,它是 symfony 安装程序。怎么做 ?如何生成在 __halt_compiler 之后可执行的代码? 最佳答案 我
我正在使用 PHP 5.6 运行本地服务器。我正在使用第三方库,该库使用函数 __halt_compiler。达到此功能后,我收到以下错误。 PHP Fatal error: Uncaught exc
来自manual : void __halt_compiler ( void ) This function halts the execution of the compiler. This can
来自manual : void __halt_compiler ( void ) This function halts the execution of the compiler. This can
我是一名优秀的程序员,十分优秀!