Start · Sprachen · PHP · Referenz · xdiff_string_patch_binary

xdiff_string_patch_binary

Funktion

Alias von <code>xdiff_string_bpatch</code> — wendet einen binären Patch auf einen String an und gibt das Ergebnis zurück.

seit PHP 0.2.0 Kategorie: misc

Signatur

xdiff_string_patch_binary(string $str, string $patch): string

Beschreibung

xdiff_string_patch_binary ist ein Alias der Funktion xdiff_string_bpatch und wendet einen binären xdiff-Patch auf einen als String übergebenen Originalinhalt an. Das Ergebnis wird als neuer String zurückgegeben, ohne dass Dateien auf dem Dateisystem benötigt werden.

Die Funktion ist Teil der PECL-Erweiterung xdiff und arbeitet ausschließlich im Arbeitsspeicher. Sie eignet sich besonders gut, wenn sowohl der Ausgangsinhalt als auch der Patch bereits als PHP-Strings vorliegen – etwa aus Datenbank-Blobs, Netzwerkübertragungen oder vorherigen xdiff-Operationen.

Der Patch muss zuvor mit xdiff_string_bdiff (bzw. xdiff_string_bdiff_fromstring) oder den entsprechenden Datei-Varianten erzeugt worden sein. Für textbasierte Patches (unified diff) steht stattdessen xdiff_string_patch zur Verfügung.

Da es sich um einen reinen Alias handelt, ist das Verhalten identisch mit xdiff_string_bpatch. In neuem Code empfiehlt es sich, direkt xdiff_string_bpatch zu verwenden, da Aliasse in künftigen Versionen entfernt werden können.

Parameter

Name Typ Default Beschreibung
$str Pflicht string Der Originalinhalt als String, auf den der binäre Patch angewendet werden soll.
$patch Pflicht string Der binäre Patch als String, der zuvor mit xdiff_string_bdiff oder einer verwandten Funktion erzeugt wurde.

Rückgabewert

Typ
string|false
Beschreibung
Gibt den gepatchten Inhalt als String zurück. Im Fehlerfall (z. B. ungültiger Patch) wird false zurückgegeben.

Beispiele

Binären Patch erstellen und anwenden

<?php
// Originalinhalt und neue Version
$original = "Hallo Welt!\nDies ist Version 1.\n";
$modified = "Hallo Welt!\nDies ist Version 2.\n";

// Binären Patch erzeugen
$patch = xdiff_string_bdiff($original, $modified);

// Patch mit dem Alias anwenden
$result = xdiff_string_patch_binary($original, $patch);

if ($result !== false) {
    echo $result;
} else {
    echo "Fehler beim Anwenden des Patches.";
}
Hallo Welt! Dies ist Version 2.

Patch auf aus Datenbank gelesenen Inhalt anwenden

<?php
// Simulierter Abruf aus einer Datenbank (BLOB-Felder)
$pdo = new PDO('sqlite::memory:');
// ... Tabelle befüllen und Daten lesen ...

$originalBlob = file_get_contents('/var/data/document_v1.bin');
$patchBlob    = file_get_contents('/var/data/document.patch');

$patched = xdiff_string_patch_binary($originalBlob, $patchBlob);

if ($patched !== false) {
    file_put_contents('/var/data/document_v2.bin', $patched);
    echo "Dokument erfolgreich gepatcht und gespeichert.";
} else {
    echo "Patch konnte nicht angewendet werden.";
}
Dokument erfolgreich gepatcht und gespeichert.

// Wichtig · Fallstricke

Alias-Hinweis: xdiff_string_patch_binary ist ein direkter Alias von xdiff_string_bpatch. Da Aliasse in zukünftigen PHP- oder PECL-Versionen ohne Vorwarnung entfernt werden können, wird empfohlen, in neuem Code stets xdiff_string_bpatch direkt zu verwenden.

PECL-Abhängigkeit: Die xdiff-Erweiterung ist nicht im PHP-Kern enthalten und muss separat über PECL installiert werden (pecl install xdiff). Auf vielen Shared-Hosting-Umgebungen steht sie nicht zur Verfügung.

Binär vs. Text: Diese Funktion ist ausschließlich für binäre Patches geeignet, die mit xdiff_string_bdiff erzeugt wurden. Für textbasierte (unified) Patches muss xdiff_string_patch verwendet werden.