Hallo,
ich hab da mal nen Problem: (bevor ich es vergessen: ich benutze PHP5)
Ich lade eine
XML-Datei auf meinen Server hoch und ein PHP-Script soll das
XML-File verarbeiten. In der
XML-Datei sind auch binäre Daten drinnen, die folgendermaßen kodiert sind:
- Originaldaten (im Hexeditor): $0A$02$AF ...
- Daten in der
XML-Datei: 0A02AF ... (als string)
Nun will ich diese Datei, die sich dahinter befindet, in eine seperate Datei schreiben. Dabei hab ich folgende Funktion geschrieben (es ist im Moment erstmal egal, dass die Datei 1 Byte länger werden kann)
Code:
function XMLBinaryToFile($xmlData, $TargetFile)
{
$aFile = fopen($TargetFile, 'wb');
for ($i = 0; ($i < strlen($xmlData)); $i += 4) {
$Value = hexdec('0x'.substr($xmlData, $i, 4));
$arr = pack('n', $Value);
fwrite($aFile, $arr) ;
}
fclose($aFile);
}
Mein Problem ist jetzt, dass diese Funktion extrem langsam ist und die Daten in der
XML-Datei mehrere 100 KB bis MB haben können. Das ist so viel, dass die Ausführungsdauer der php-Datei überschritten wird.
Jetzt ist meine Frage: gibt es dafür vielleicht eine viel schnellere Methode oder ist der Ansatz viel zu umständlich?