> 但 ;
和结束标记之间最多只能有一个空格
必须是 **正好** 一个空格,或者“\n”。
以下是 php 如何修剪结束标记的方式。
> seek_for("__HALT_COMPILER();");
> read_3_into(buffer);
> if ((*buffer == ' ' || *buffer == '\n') && *(buffer + 1) == '?' && *(buffer + 2) == '>') {
> do_things.
Phar 的存根是一个简单的 PHP 文件。最小的存根如下所示
<?php __HALT_COMPILER();
存根至少必须在其结尾包含 __HALT_COMPILER();
令牌。通常,存根将包含如下所示的加载器功能
<?php
Phar::mapPhar();
include 'phar://myphar.phar/index.php';
__HALT_COMPILER();
Phar 存根的内容没有限制,除了必须以 __HALT_COMPILER();
结尾的要求。结束的 PHP 标记
?>
;
和结束标记 ?>
之间最多只能有一个空格,否则 phar 扩展将无法处理 Phar 归档文件的清单。
在基于 tar 或 zip 的 phar 归档文件中,存根存储在 .phar/stub.php
文件中。基于 phar 的 Phar 归档文件的默认存根包含大约 7k 的代码,用于提取 phar 的内容并执行它们。有关更多详细信息,请参阅 Phar::createDefaultStub()。
phar 别名存储在基于 tar 或 zip 的 phar 归档文件的 .phar/alias.txt
文件中,以纯文本格式存储。