Moin!
Ich lese mir eine xml Datei ein und möchte die ersten beiden Zeilen verändern:
Dann mach das doch einfach.
$array = file($downloadFile);
Hast du mal nachgelesen, was die Funktion file() tut? Zitat aus der Doku:
"Die Funktion file() ist identisch mit readfile(), außer dass die eingelesene Datei als Array zurückgegeben wird. Jedes Feld des Arrays korrespondiert mit einer Zeile der Datei. Der Zeilenumbruch bleibt erhalten."
Und jetzt die Frage: Wo stehen die ersten beiden Zeilen im Array?
$a = '?';
Wozu das $a?
array_splice($array, 0, 2);
Unnötig.
array_unshift($array, '<?xml version="1.0" encoding="utf-8" '.$a.'>\n', '<?xml-stylesheet type="text/xsl" href="test.xslt" '.$a.'>\n');
array_unshift() unnötig. $a unnötig. '\n' ist kein Zeilenumbruch. "\n" wäre einer.
$string = implode($array);
file_put_contents($downloadFile, $string);
Ok, was das Schreiben angeht. Locking fehlt insgesamt. Wird bei Multi-Tasking- oder Multi-User-Zugriff zum echten Problem - im Web-Kontext also im Prinzip immer.
- Sven Rautenberg