(PECL xdiff >= 0.2.0)
xdiff_file_patch — Применение унифицированного патча к файлу
$file
, string $patch
, string $dest
[, int $flags
= DIFF_PATCH_NORMAL
] ) : mixed
Применяет к файлу file
патча patch
и сохраняет результат в файл.
patch
должен быть унифицированным патчем, созданным
функциями xdiff_file_diff()/xdiff_string_diff().
Необязательный параметр flags
задает режим операции.
file
Оригинальный файл.
patch
Унифицированный патч. Его можно создать функциями xdiff_string_diff() и xdiff_file_diff(), либо другими совместимыми инструментами.
dest
Путь к результирующему файлу.
flags
Может быть XDIFF_PATCH_NORMAL
(режим по умолчанию,
нормальное создание патча) или XDIFF_PATCH_REVERSE
(откат
патча).
Начиная с версии 1.5.0 вы можете использовать побитовое ИЛИ для
подключения флага XDIFF_PATCH_IGNORESPACE
.
Возвращает TRUE
, если создание патча прошло успешно, строку с отклоненными
данными, если нет, и FALSE
в случае внутренней ошибки.
Пример #1 Пример использования xdiff_file_patch()
Следующий код применяет унифицированный патч к файлу.
<?php
$old_version = 'my_script-1.0.php';
$patch = 'my_script.patch';
$errors = xdiff_file_patch($old_version, $patch, 'my_script-1.1.php');
if (is_string($errors)) {
echo "Отклонены:\n";
echo $errors;
}
?>
Пример #2 Patch reversing example
Следующий код применяет откат патча к файлу.
<?php
$new_version = 'my_script-1.1.php';
$patch = 'my_script.patch';
$errors = xdiff_file_patch($new_version, $patch, 'my_script-1.0.php', XDIFF_PATCH_REVERSE);
if (is_string($errors)) {
echo "Отклонены:\n";
echo $errors;
}
?>