2024 年日本 PHP 研討會

PharData::copy

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

PharData::copy將 tar/zip 封存檔內的檔案複製到同一封存檔內的另一個新檔案

說明

public PharData::copy(字串 $from, 字串 $to): true

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

參數

來源 (from)

目標 (to)

傳回值

永遠傳回 true

錯誤/例外

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

範例

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

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

<?php

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

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

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

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

?>

新增註記

使用者貢獻的註記

此頁面沒有使用者貢獻的註記。
To Top