Bassicly, was ich tun möchte, ist mit PHP Öffnen Sie eine XML-Datei und bearbeiten Sie es mit PHP jetzt dies kann ich mit Fopen() -Funktion. Noch mein Problem, dass ich Text an die Mitte des Dokuments anhängen möchte. Nehmen wir an, die XML-Datei hat 10 Zeilen und ich möchte etwas vor der letzten Zeile (10) anhängen, so dass es jetzt 11 Zeilen ist. Ist das möglich. DankSchreiben Sie eine Datei mit PHP
Antwort
Je nachdem, wie groß die Datei ist, können Sie tun:
$lines = array();
$fp = fopen('file.xml','r');
while (!feof($fp))
$lines[] = trim(fgets($fp));
fclose($fp);
array_splice($lines, 9, 0, array('newline1','newline2',...));
$new_content = implode("\n", $lines);
Dennoch werden Sie XML-Syntax danach erneut zu validieren müssen ...
okay nach der 9 was ist die 0 für. Und wo hast du newline1 und newline2? – DonJuma
Weitere Informationen finden Sie in der Dokumentation [array_splice()] (http://www.php.net/manual/en/function.array-splice.php). 9 ist die Position, an der neue Elemente eingefügt werden. 0 ist die Anzahl der Elemente nach Index 9, die Sie ersetzen möchten (in Ihrem Fall nehme ich an?), Denen ein Ersatzarray folgt. –
Okay, das sieht gut aus, aber es sieht so aus, als ob Sie $ fp geschlossen haben. Speichert dies den neuen Text? – DonJuma
Wenn Sie in der Lage sein wollen eine Datei aus der Mitte, verwenden Sie den c+
offenen Modus ändern:
$fp = fopen('test.txt', 'c+');
for ($i=0;$i<5;$i++) {
fgets($fp);
}
fwrite($fp, "foo\n");
fclose($fp);
oben Das wird „foo“ in der fünften Zeile schreiben, ohne die Datei vollständig lesen zu müssen.
Wenn Sie jedoch ein XML-Dokument zu modifizieren, ist es wahrscheinlich besser, einen DOM-Parser zu verwenden:
$dom = new DOMDocument;
$dom->load('myfile.xml');
$linenum = 5;
$newNode = $dom->createElement('hello', 'world');
$element = $dom->firstChild->firstChild; // skips the root node
while ($element) {
if ($element->getLineNo() == $linenum) {
$element->parentNode->insertBefore($newNode, $element);
break;
}
$element = $element->nextSibling;
}
echo $dom->saveXML();
Natürlich ist der obige Code ist abhängig von der tatsächlichen XML-Dokumentstruktur. Aber die $element->getLineNo()
ist der Schlüssel hier.
- 1. Schreiben Sie eine .htaccess-Datei in PHP?
- 2. Schreiben Sie eine PHP-Datei in eine PHP
- 3. Schreiben Sie Daten in eine JSON-Datei von PHP-Datei
- 4. Eine Zeichenfolge in eine PHP-Datei schreiben
- 5. Permanent Variablen in eine PHP-Datei schreiben mit PHP
- 6. php schreiben eine Datei anhängen, wiederholt unerwünschte
- 7. eine neue Zeile in PHP-Datei schreiben
- 8. PHP-Code in eine Datei schreiben
- 9. PHP Lesen Schreiben Datei
- 10. Fügen Sie eine lokale "externe" PHP/HTML-Datei mit PHP
- 11. Schreiben Sie eine Textdatei und Kraft zum Download mit php
- 12. Probleme beim Schreiben in eine Datei mit PHP unter Ubuntu
- 13. Eine Datei in PHP mit einem Cron schreiben
- 14. Erstellen Sie eine CSS-Datei mit PHP
- 15. Erstellen Sie eine PDF-Datei mit PHP
- 16. Schreiben Sie eine bestimmte Zeile in PHP
- 17. Java-Datei - Öffnen Sie eine Datei und schreiben Sie daran
- 18. schreiben Sie eine Rdata-Datei aus C++
- 19. PHP schreiben zu enthalten Datei
- 20. Sitemap mit PHP schreiben
- 21. exportieren Sie eine PHP-Datei
- 22. Warum benötigt Apache + PHP Ausführungsberechtigungen zum Schreiben in eine Datei?
- 23. Schreiben Sie eine Datei in UTF-8 mit FileWriter (Java)?
- 24. Ini-Datei erstellen, Werte in PHP schreiben
- 25. Variable in eine Datei schreiben mit Makro
- 26. Python-Skript von PHP ausführen und in eine Datei schreiben
- 27. Wie mache ich PHP-Dateien automatisch in eine Datei schreiben?
- 28. Wie sieht man eine Datei in PHP schreiben?
- 29. PHP Tabulatorzeichen in einer Datei schreiben?
- 30. Ausgabe von print_r in eine TXT-Datei schreiben. PHP
http://php.net/manual/en/function.domnode-insert-before.php – seriousdev