(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版本开始,您还可以使用二进制OR启用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;
}
?>