函式名:Phar::webPhar()
適用版本:PHP 5 >= 5.3.0, PHP 7, PHP 8
函式用法:Phar::webPhar() 方法用於將一個 Phar 歸檔檔案轉換為一個可執行的 PHAR web應用程式。它會為 PHAR 歸檔檔案建立一個簡單的入口點,以便從 Web 伺服器上直接訪問 PHAR 檔案。
語法:bool Phar::webPhar([ string $index [, string $f404 [, array $mimetypes [, array $rewrite [, callable $preprocess [, callable $postprocess ]]]]]])
引數:
- $index(可選):指定 PHAR 檔案的入口點檔案,預設為 "index.php"。
- $f404(可選):指定當請求的檔案不存在時返回的檔案,預設為 null。
- $mimetypes(可選):指定副檔名與 MIME 型別的對映陣列,預設為 null。
- $rewrite(可選):指定一個陣列,用於重寫請求的 URL。陣列的鍵是待重寫的 URL,值是重寫後的 URL。
- $preprocess(可選):指定一個回撥函式,用於在檔案傳輸給客戶端之前預處理檔案內容。
- $postprocess(可選):指定一個回撥函式,用於在檔案傳輸給客戶端之後進行後處理。
返回值:成功時返回 true,失敗時返回 false。
示例:
$phar = new Phar('myapp.phar');
$phar->startBuffering();
$phar->buildFromDirectory('/path/to/myapp');
$phar->setStub($phar->createDefaultStub('index.php'));
$phar->stopBuffering();
// 將 PHAR 檔案轉換為可執行的 web 應用程式
$phar->webPhar();
// 設定重寫規則,將 /about 重寫為 /index.php?page=about
$phar->webPhar(null, null, null, ['/about' => '/index.php?page=about']);
在上面的示例中,首先建立了一個名為 "myapp.phar" 的 PHAR 歸檔檔案,並從指定目錄 "/path/to/myapp" 構建了該歸檔檔案。然後,設定了 PHAR 檔案的入口點檔案為 "index.php",並停止緩衝。接下來透過呼叫 webPhar()
方法將 PHAR 檔案轉換為一個可執行的 web 應用程式。如果需要對請求的 URL 進行重寫,可以透過傳遞 $rewrite
引數來指定重寫規則。
請注意,使用 webPhar()
方法將 PHAR 檔案轉換為 web 應用程式後,可以直接從 Web 伺服器上訪問該 PHAR 檔案,並像訪問普通 PHP 檔案一樣訪問其中的指令碼和資源。