php.de

Zurück   php.de > php.de Intern > Wiki Diskussionsforum > Tutorials

Tutorials Hier findest Du Tutorials, welche nach und nach ein fertiges Script ergeben. Sehen, lernen & verstehen!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.08.2007, 12:27   #1 (permalink)
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard PHP/XML: SimpleXML

Abgekoppelt von diesem Fred
http://www.phpfriend.de/forum/ftopic62518.html
möchte ich mit diesem Beispiel zeigen, wie einfach mit PHP 5 und SimpleXML XML-Dateien gelesen oder geschrieben werden können.

Geschrieben wird ein beliebiger Text in <section> Tags, die über das name-Attribut identifiziert werden. Bei Zeichensatzfehlern einfach mal versuchen konsequent UTF-8 zu verwenden, oder eben wieder auf good-old ISO-8859-1 zurückstellen.

test.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<text></text>
test.php
PHP-Code:
<?php
$file 
"test.xml";
$xml  simplexml_load_file($file);
// schreibzugriff wenn angefordert und ein section-name angegeben wurde
if (@$_POST["access"] == "write" && strlen(@$_POST["name"]) > 0) {
    
// section erstellen und wert zuweisen
    
$section $xml->addChild("section", @$_POST["value"]);
    
// attribut name festlegen, wir wollen den tag ja später wiedererkennen
    
$section->addAttribute("name"$_POST["name"]);
    
// xml in die datei schreiben
    
file_put_contents($file$xml->asXml());
    
// damit wir es auch gleich wieder auslesen können, ob es geklappt
    // hat, die datei gleich nach dem schreiben wieder laden
    
$xml simplexml_load_file($file);    
}
// lesezugriff auf alle section's'
for ($i 0$i count($xml->section); ++$i) {
    
// attribute auslesen
    
$attr $xml->section[$i]->attributes();
    
// ist der name der gesuchte?
    
if ($attr->name == @$_POST["name"]) {
        
// löschen dieses elements angefordert?
        
if (@$_POST["access"] == "delete") {
            
// element löschen
            
unset($xml->section[$i]);
            
// und neue struktur speichern
            
file_put_contents($file$xml->asXml());
        } else {
            
// nicht löschen? dann wohl nur lesen
            
$value $xml->section[$i][0];
        }
        
// aus der schleife aussteigen
        
break;
    }
}
?>
<html><head><title></title></head><body>
<form action="" method="post">
    Section <input name="name" type="text" value="<?=@$_POST["name"]?>" />
    <input checked name="access" type="radio" value="read" /> lesen
    <input name="access" type="radio" value="write" /> schreiben
    <input name="access" type="radio" value="delete" /> löschen
    <input type="submit" />
    <textarea name="value"><?=@$value?></textarea>
</form>
</body></html>
Fehlerbehandlung und eine Einbettung in CDATA (leider manuell, da von SimpleXML nicht unterstützt) werden folgen. Wer den Part übernehmen möchte, darf sich angesprochen fühlen, das anstatt mir zu tun.
Zergling-new ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.04.2009, 00:10   #2 (permalink)
Erfahrener Benutzer
 
Registriert seit: 27.09.2008
Beiträge: 319
PHP-Kenntnisse:
Fortgeschritten
moveax1 befindet sich auf einem aufstrebenden Ast
Standard

autsch, das war der falsche Thread.

Entschuldigung
__________________
twitter.com/moveax1 || http://modxcms.com/ || http://ubuntuusers.de/

$live->free() OR die();
moveax1 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SimpleXML: Doppelpunkt im Elementnamen swmsherl PHP Tipps 2008 2 01.06.2008 18:03
simplexml und media rss zeimann PHP Tipps 2008 2 21.05.2008 23:51
simplexml, redundante elemente und php Igäl PHP Tipps 2007 9 13.07.2007 19:12
SimpleXML parst nicht korrekt? Anotherone PHP-Fortgeschrittene 2 08.03.2007 12:27
1. Knotenname eines XML-Dokuments mit SimpleXML Clue PHP Tipps 2006 14 20.04.2006 17:42
simplexml & elementnamen ermitteln flyingeagle PHP Tipps 2006 7 13.02.2006 21:18
XML mit simplexml und xpath in HTML umwandeln PHP-Fortgeschrittene 3 15.07.2005 01:39
SimpleXML Frage PHP-Fortgeschrittene 2 01.06.2005 22:16
Alternative zu simplexml Buhmann Beitragsarchiv 6 17.05.2005 16:10
Bug in SimpleXML? PHP-Fortgeschrittene 8 10.03.2005 08:54
[Erledigt] XML Verarbeitung mit SimpleXML PHP5 PHP-Fortgeschrittene 1 29.12.2004 11:22
PHP5 bei 1&1 mit simplexml,...? PHP-Fortgeschrittene 8 12.12.2004 12:08
SimpleXML Entities PHP-Fortgeschrittene 4 19.11.2004 18:21
SimpleXML: Name des Root-Tags Quadaptor PHP-Fortgeschrittene 12 11.09.2004 22:49
Elemente/Nodes mit SimpleXML hinzufügen PHP-Fortgeschrittene 3 31.07.2004 00:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php simplexml, simplexml tutorial, php xml schreiben, simplexml php, php create xml, simplexml speichern, php simplexml tutorial, create xml with php, simple xml php, php simple xml, simplexml, simplexml php tutorial, php generate xml, php simplexml write, php create xml file, php simplexml speichern, php xml tutorial, php xml simplexml, php write xml, simplexml write

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:54 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.