(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 'Could not modify file.txt:', $e;
}
?>
注意: Phar::addFile()、Phar::addFromString() 和 Phar::offsetSet() 在每次调用时都会保存一个新的 Phar 档案。如果性能是一个问题,应该使用 Phar::buildFromDirectory() 或 Phar::buildFromIterator() 来代替。