2024 年 PHP Conference Japan

Phar::copy

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::copy將 phar 封存檔內的檔案複製到 phar 內的另一個新檔案

說明

公開 Phar::copy(字串 $from, 字串 $to):

注意事項:

此方法需要將 php.ini 設定 phar.readonly 設為 0 才能對 Phar 物件生效。否則,將會拋出 PharException

將 phar 封存內部的檔案複製到 phar 內的另一個新檔案。這是使用 copy() 搭配 phar 串流包裝器的物件導向替代方案。

參數

from

來源檔案路徑。

to

目標檔案路徑。

傳回值

永遠傳回 true

錯誤/例外

如果來源檔案不存在、目標檔案已存在、寫入權限被停用、開啟任一檔案失敗、讀取來源檔案失敗,則拋出 UnexpectedValueException;如果將變更寫入 phar 失敗,則拋出 PharException

範例

範例 #1 Phar::copy() 範例

此範例顯示使用 Phar::copy() 和等效串流包裝器的相同操作效能。兩種方法的主要差異在於錯誤處理。所有 Phar 方法都會拋出例外,而串流包裝器則使用 trigger_error()

<?php

try {
$phar = new Phar('myphar.phar');

$phar['a'] = 'hi';
$phar->copy('a', 'b');

echo
$phar['b']; // 輸出 "phar://myphar.phar/b"
} catch (Exception $e) {
// 處理錯誤
}

// 以上程式碼的等效串流包裝器。
// 發生錯誤時會觸發 E_WARNING,而不是例外
copy('phar://myphar.phar/a', 'phar//myphar.phar/c');
echo
file_get_contents('phar://myphar.phar/c'); // 輸出 "hi"

?>
新增註釋
To Top