(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;
}
?>