W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)
Phar::setStub — 用于設(shè)置 Phar 存檔的 PHP 加載器或引導(dǎo)存根
public Phar::setStub(resource|string $stub, int $length = -1): bool
注意:此方法需要 將 中的 設(shè)為 以適合 Phar 對(duì)象. 否則, 將拋出PharException.php.iniphar.readonly0
此方法用于將 PHP 引導(dǎo)加載器存根添加到新的 Phar 存檔中,或者 替換現(xiàn)有 Phar 存檔中的加載程序存根。
每當(dāng)直接包含存檔時(shí),都會(huì)使用 Phar 存檔的加載器存根 如本例所示:
<?php
include 'myphar.phar';
?>
通過(guò)流包裝器包含文件時(shí),不會(huì)訪問(wèn)加載器,如下所示:phar
<?php
include 'phar://myphar.phar/somefile.php';
?>
stub
要用作此可執(zhí)行存根的字符串或開放流句柄 法爾檔案。
length
成功時(shí)返回 true, 或者在失敗時(shí)返回 false。
如果啟用了 phar.readonly,則會(huì)引發(fā) UnexpectedValueException 在php.ini。如果遇到任何問(wèn)題,則拋出 PharException 刷新對(duì)磁盤的更改。
版本 | 說(shuō)明 |
---|---|
8.3.0 | 現(xiàn)在不推薦使用資源和 a 調(diào)用 Phar::setStub()。此類調(diào)用應(yīng)替換為:length $phar->setStub(stream_get_contents($resource)); |
示例 #1 A Phar::setStub() example
<?php
try {
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['a.php'] = '<?php var_dump("Hello");';
$p->setStub('<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
include 'phar://brandnewphar.phar/a.php';
var_dump($p->getStub());
$p['b.php'] = '<?php var_dump("World");';
$p->setStub('<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
include 'phar://brandnewphar.phar/b.php';
var_dump($p->getStub());
} catch (Exception $e) {
echo 'Write operations failed on brandnewphar.phar: ', $e;
}
?>
以上示例會(huì)輸出:
string(5) "Hello" string(82) "<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>" string(5) "World" string(83) "<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: