Bei der Verarbeitung einiger Konfigurationsdateien bin ich kürzlich auf Dateien im YAML-Format gestoßen. Da ich noch nie mit Dateien in diesem Format in Berührung gekommen bin, bin ich mit XML relativ vertraut. Was ist YAML? Welche Vor- und Nachteile hat es gegenüber XML? Wann sollte YAML verwendet werden? Wie verwende ich YAML? Lassen Sie uns hier eine kurze Zusammenfassung erstellen. Beginnen wir mit XML.
Ich glaube, jeder kennt XML. Unten sind konzeptionelle Dinge, die ich aus dem Internet extrahiert habe. Sie können einen Blick darauf werfen. Hier gibt es nicht viel zu sagen. Lassen Sie uns mehr über einige grundlegende Verwendungsmöglichkeiten sprechen.
XML-Übersicht:
Extensible Markup Language (XML), eine Auszeichnungssprache, die zum Markieren elektronischer Dokumente verwendet wird, um sie strukturell zu gestalten. Sie kann zum Markieren von Daten und zum Definieren von Datentypen verwendet werden Benutzer zu einer Quellsprache, die ihre eigene Auszeichnungssprache definiert. XML ist eine Teilmenge der Standard Generalized Markup Language (SGML) und eignet sich gut für den Webtransport. XML bietet eine einheitliche Methode zum Beschreiben und Austauschen strukturierter Daten unabhängig von Anwendungen oder Anbietern.
Formatfunktionen:
XML unterscheidet sich von Datenbanken wie Access, Oracle und SQL Server. Datenbanken bieten leistungsfähigere Datenspeicher- und Analysefunktionen wie Datenindizierung, Sortierung, Suche, Korrelationskonsistenz usw. Dies ist nur bei XML der Fall Daten zu speichern. Tatsächlich besteht der größte Unterschied zwischen XML und anderen Datendarstellungen darin, dass es äußerst einfach ist. Dies ist ein scheinbar trivialer Vorteil, der XML jedoch einzigartig macht.
Der Designunterschied zwischen XML und HTML besteht darin, dass XML für die Übertragung und Speicherung von Daten konzipiert ist und der Schwerpunkt auf dem Inhalt der Daten liegt. Während HTML für die Anzeige von Daten konzipiert ist, liegt der Schwerpunkt auf dem Erscheinungsbild der Daten. HTML dient der Anzeige von Informationen, während XML der Übermittlung von Informationen dient.
Der Unterschied zwischen XML- und HTML-Syntax: Nicht alle HTML-Tags müssen paarweise erscheinen, während XML verlangt, dass alle Tags paarweise erscheinen müssen, während bei XML die Groß-/Kleinschreibung beachtet werden muss.
Lesen und Schreiben:
Es gibt zwei Möglichkeiten, die ich beim Lesen und Schreiben von XML kenne. Eine besteht darin, den XML-Wert über JavaScript zu erhalten, und die andere darin, ihn mit PHP zu lesen. Sie können beim Schreiben von XML auf das Handbuch zurückgreifen. Das XML-Format ist relativ kostenlos und Sie können Tags anpassen, aber ein Prinzip ist, intuitiv zu sein. Nachfolgend sind Beispiele aufgeführt, damit jeder sie testen kann. Wenn Sie Fragen haben, können Sie diese gerne mitteilen.
note.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <from>John</from> <to>George</to> <message>Don't forget the meeting!</message> </note>
xml_test.html
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmls="http://www.w3.org/1999/xhtml"> <body> <p> <b>To:</b> <span id="to"></span><br /> <b>From:</b> <span id="from"></span><br /> <b>Message:</b> <span id="message"></span> </p> <script type="text/javascript"> if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","note.xml",false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML; document.getElementById("to").innerHTML= xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue; document.getElementById("from").innerHTML= xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue; document.getElementById("message").innerHTML= xmlDoc.getElementsByTagName("message")[0].childNodes[0].nodeValue; </script> </body> </html>
xml_test.php
<?php //创建DOM对象 $xml = new DOMDocument(); //读取XML文件 $xml = simplexml_load_file('note.xml'); //输出XML文件中from属性,多个相同属性也就是数组的形式,可以用下标来取值 echo $xml->from; ?>
YAML-Einführung:
YAML wird als Serialisierungssprache, die einfacher und leichter zu lesen ist als XML, zunehmend bei der Entwicklung von Anwendungen und Konfigurationsdateien verwendet. In diesem Artikel werden der aktuelle Status von YAML, die Vor- und Nachteile von YAML im Vergleich zu XML kurz vorgestellt und anhand praktischer Beispiele typische Anwendungsszenarien von YAML und seine Verwendung (einschließlich C/C++, Ruby, PHP usw.) vorgestellt.
Vorteile:
YAML ist leicht zu lesen.
YAML und Skriptsprachen bieten eine gute Interaktivität.
YAML verwendet Datentypen, die die Sprache implementieren.
YAML verfügt über ein konsistentes Informationsmodell.
YAML ist einfach zu implementieren.
Die oben genannten 5 Punkte sind die Mängel von XML. Gleichzeitig bietet YAML auch die folgenden Vorteile von XML:
YAML kann auf Stream-Basis verarbeitet werden.
YAML verfügt über starke Ausdrucksfähigkeiten und eine gute Skalierbarkeit.
Kurz gesagt versucht YAML, die von XML erfüllten Aufgaben agiler zu erfüllen als XML.
Weitere Inhalte und Spezifikationen finden Sie unter http://www.yaml.org.
Syntax:
Struktur wird mit Leerzeichen angezeigt. Elemente in der Reihenfolge werden durch „-“ dargestellt und Schlüssel-Wert-Paare in der Karte werden durch „:“ getrennt.
Dies ist fast die gesamte Syntax.
Zum Beispiel...
Im Allgemeinen die YAML-Datei Erweiterung ist. Zum Beispiel: john.yaml
name: John Smith age: 37 spouse: name: Jane Smith age: 25 children: - name: Jimmy Smith age: 15 - name: Jenny Smith age 12
John ist 37 Jahre alt und hat eine glückliche vierköpfige Familie. Die beiden Kinder Jimmy und Jenny sind lebhaft und süß. Seine Frau Jane ist jung und schön.
Wenn Sie gründlich studieren, werden Sie möglicherweise auch auf einige soziale Probleme stoßen^_^.
Es ist ersichtlich, dass die Lesbarkeit von YAML gut ist.
Lesen und Schreiben:
Zum Lesen und Schreiben von YAML in PHP empfehle ich die Verwendung der Spyc-Klasse zum Lesen und Schreiben von YAML-Dateien.
Download-Adresse der Spyc-Klassendatei:
https://github.com/mustangostan/spyc/
Spyc verfügt nur über zwei Klassenmethoden, eine dient zum Lesen von YAML-Dateien und die andere dazu Generieren Sie das YAML-Dateiformat. Die beiden Methoden werden im Folgenden vorgestellt.
include('spyc.php'); // 读取YAML文件,生成数组 $yaml = Spyc::YAMLLoad('spyc.yaml'); // 将数组转换成YAML文件 $array['name'] = 'andy'; $array['site'] = '21andy.com'; $yaml = Spyc::YAMLDump($array);
Die Konfiguration der Parsing-Methode, die von php.ini zum Lesen von ini verwendet wird, unterstützt keine mehrdimensionalen Arrays. Daher bin ich sehr an Yaml interessiert, um mehrdimensionale Arrays zu erstellen eine Konfigurationsdatei wie folgt:
- { row: 0, col: 0, func: {tx: [0, 1]} }
Konvertieren Sie wie folgt in ein mehrdimensionales PHP-Array:
test.yaml (dieses Beispiel ist meine DB-Konfigurationsdatei, sehr zu empfehlen!)
DB: default: dsn: 'mysql:dbname=test;host=127.0.0.1' user: 'root' pass: '111' session: dsn: 'mysql:dbname=test;host=127.0.0.1' user: 'root' pass: '111'
test.php
<?php include('spyc.php'); //读取YAML文件,生成数组 $yaml = Spyc::YAMLLoad('test.yaml'); echo "<pre class="brush:php;toolbar:false">"; print_r($yaml); echo ""; PHP code Array ( [DB] => Array ( [default] => Array ( [dsn] => mysql:dbname=test;host=127.0.0.1 [user] => root [pass] => 111 ) [session] => Array ( [dsn] => mysql:dbname=test;host=127.0.0.1 [user] => root [pass] => 111 ) ) )
Beispiel einer von PHP generierten YAML-Datei:
include('spyc.php');
//Konvertieren Sie das Array in YAML-Dateiformat
$array[' name'] = 'PHP Programmer's Notes';
$array['site'] = 'www.songchaoke.cn';
$yaml = Spyc::YAMLDump( $array);
/ /Schreiben Sie die konvertierte YAML in die Datei
$f = fopen('test2.yaml',"w+");
fwrite($f,$yaml);
fclose($f);
[/code]
Weitere Artikel zur Verwendung von XML und YAML finden Sie auf der chinesischen PHP-Website!