PHP Conference Japan 2024

xdiff_file_patch

(PECL xdiff >= 0.2.0)

xdiff_file_patch使用 unified diff 修補檔案

說明

xdiff_file_patch(
    字串 $file,
    字串 $patch,
    字串 $dest,
    整數 $flags = DIFF_PATCH_NORMAL
): 混合

使用 patch 修補 file 檔案,並將結果儲存到一個檔案中。 patch 必須是由 xdiff_file_diff()/xdiff_string_diff() 函式所建立的 unified diff 格式。選用的 flags 參數指定操作模式。

參數

file

原始檔案。

patch

unified patch 檔案。它必須使用 xdiff_string_diff()xdiff_file_diff() 函式或相容的工具建立。

dest

結果檔案的路徑。

flags

可以是 XDIFF_PATCH_NORMAL(預設模式,正常修補)或 XDIFF_PATCH_REVERSE(反向修補)。

從 1.5.0 版本開始,您也可以使用二元 OR 運算來啟用 XDIFF_PATCH_IGNORESPACE 旗標。

返回值

如果發生內部錯誤,則返回 false;如果無法套用修補程式,則返回包含被拒絕區塊的字串;如果修補程式已成功套用,則返回 true

範例

範例 #1 xdiff_file_patch() 範例

以下程式碼將 unified diff 套用到檔案。

<?php
$old_version
= 'my_script-1.0.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($old_version, $patch, 'my_script-1.1.php');
if (
is_string($errors)) {
echo
"被拒絕的區塊:\n";
echo
$errors;
}

?>

範例 #2 反向修補範例

以下程式碼反轉一個修補程式。

<?php
$new_version
= 'my_script-1.1.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($new_version, $patch, 'my_script-1.0.php', XDIFF_PATCH_REVERSE);
if (
is_string($errors)) {
echo
"被拒絕的區塊:\n";
echo
$errors;
}

?>

參見

新增註記

使用者貢獻的註記

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