gpt4 book ai didi

未找到 PHP __halt_compiler

转载 作者:可可西里 更新时间:2023-10-31 23:18:07 27 4
gpt4 key购买 nike

我正在使用 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com