(PECL xdiff >= 0.2.0)
xdiff_string_patch — 用统一 diff 修补字符串
用 patch
参数中的统一补丁修补 str
字符串,并返回结果。 patch
必须是由 xdiff_file_diff()/xdiff_string_diff() 函数创建的统一 diff。可选的 flags
参数指定操作模式。如果提供,则补丁的任何被拒绝部分将存储在 error
变量中。
str
原始字符串。
patch
统一补丁字符串。它必须使用 xdiff_string_diff()、xdiff_file_diff() 函数或兼容工具创建。
flags
flags
可以是 XDIFF_PATCH_NORMAL
(默认模式,正常补丁)或 XDIFF_PATCH_REVERSE
(反向补丁)。
从版本 1.5.0 开始,您还可以使用按位或来启用 XDIFF_PATCH_IGNORESPACE
标志。
error
如果提供,则被拒绝的部分将存储在此变量中。
返回已修补的字符串,或在发生错误时返回 false
。
范例 #1 xdiff_string_patch() 范例
以下代码将更改应用于某些文章。
<?php
$old_article = file_get_contents('./old_article.txt');
$diff = $_SERVER['patch']; /* 假设有人将补丁粘贴到 html 表单 */
$errors = '';
$new_article = xdiff_string_patch($old_article, $diff, XDIFF_PATCH_NORMAL, $errors);
if (is_string($new_article)) {
echo "新文章:\n";
echo $new_article;
}
if (strlen($errors)) {
echo "拒绝:\n";
echo $errors;
}
?>