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