> 但在 ; 和結尾標籤之間不能超過一個空格
必須**剛好**是一個空格,或是 "\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 stub 的內容沒有限制,唯一的要求是它必須以 __HALT_COMPILER();
結尾。結尾的 PHP 標籤
?>
;
和結尾標籤 ?>
之間不能超過一個空格,否則 phar 副檔名將無法處理 Phar 封存的 manifest。
在基於 tar 或 zip 的 phar 封存中,stub 儲存在 .phar/stub.php
檔案中。基於 phar 的 Phar 封存的預設 stub 包含大約 7k 的程式碼,用於提取 phar 的內容並執行它們。詳情請參閱 Phar::createDefaultStub()。
phar 別名以純文字形式儲存在基於 tar 或 zip 的 phar 封存中的 .phar/alias.txt
檔案中。