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