(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)
Phar::offsetSet — 將內部檔案的內容設定為外部檔案的內容
注意事項:
此方法需要將 php.ini 設定
phar.readonly
設定為0
,才能讓 Phar 物件正常運作。否則,將會拋出 PharException 例外。
這是 ArrayAccess 介面的實作,允許使用陣列存取括號直接操作 Phar 封存的內容。 offsetSet 用於修改現有檔案或將新檔案添加到 Phar 封存中。
localName
要在 Phar 中修改的檔案名稱(相對路徑)。
value
檔案的內容。
無傳回值。
如果 phar.readonly 為 1
,則會拋出 BadMethodCallException,因為只有在 phar.readonly 設定為 0
時才允許修改 Phar。如果將對 Phar 封存所做的更改寫入磁碟時發生任何問題,則會拋出 PharException。
範例 #1 Phar::offsetSet() 範例
不應直接存取 offsetSet,而應透過使用 []
運算子的陣列存取來使用。
<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
// 呼叫 offsetSet
$p['file.txt'] = 'Hi there';
} catch (Exception $e) {
echo '無法修改 file.txt:', $e;
}
?>
注意: Phar::addFile()、Phar::addFromString() 和 Phar::offsetSet() 每次被呼叫時都會儲存一個新的 phar 封存。如果考量效能,則應改用 Phar::buildFromDirectory() 或 Phar::buildFromIterator()。