(PECL xdiff >= 0.2.0)
xdiff_string_patch — Применить обычный патч к строке
$str
, string $patch
[, int $flags
[, string &$error
]] ) : string
Применяет к строке str
обычный патч
patch
и возвращает результат.
patch
должен быть обычным патчем, созданным с помощью
функций xdiff_file_diff() или xdiff_string_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;
}
?>