2
0

read/write xml file in php, task

This commit is contained in:
cwikladaniel
2025-12-11 11:35:44 +01:00
parent d26d5ea4a7
commit a1040bd5db
11 changed files with 298 additions and 22 deletions

View File

@@ -7,6 +7,10 @@ Wichtige Informationen
- Wir eventuell nie aktuell sein.
- Stundenplan - [Link](https://wvss-mannheim.webuntis.com/WebUntis?school=wvss-mannheim#/basic/timetablePublic/class?date=2025-12-08&entityId=2583)
## 11-12-25 - PHP (XML)
- XML aus PHP erstellt
- CSV Datei in XML Datei konvertiert
## 10-12-25 - PHP
- Unterrichtsprojekt begonnen:

View File

@@ -0,0 +1,65 @@
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
/*
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<personen>
<benutzer>
<benutzername>maier1</benutzername>
<passwort>mXabc123m!</passwort>
<vorname>Hubertus</vorname>
<nachname>Maier</nachname>
<email>maier1@bfpohg.de</email>
</benutzer>
<benutzer> ... </benutzer>
</personen>
*/
// create xml docs
$xmlDoc = new DOMDocument("1.0", "utf-8");
$xmlDoc->formatOutput=true;
// Root element
$xmlRoot = $xmlDoc->createElement("personen");
$xmlDoc->appendChild($xmlRoot);
// first node - benutzer
$xmlPerson = $xmlDoc->createElement("benutzer");
// child node of benutzer: benutzername
$xmlBenutzername = $xmlDoc->createElement("benutzername", "Daniel");
$xmlPerson->appendChild($xmlBenutzername);
// child node of benutzer: passwort
$xmlPasswort = $xmlDoc->createElement("passwort", "danielISTcool");
$xmlPerson->appendChild($xmlPasswort);
// append node to root
$xmlRoot->appendChild($xmlPerson);
// --- SECOND USER ---
// second node - benutzer
$xmlPerson = $xmlDoc->createElement("benutzer");
// child node of benutzer: benutzername
$xmlBenutzername = $xmlDoc->createElement("benutzername", "Peter");
$xmlPerson->appendChild($xmlBenutzername);
// child node of benutzer: passwort
$xmlPasswort = $xmlDoc->createElement("passwort", "12345");
$xmlPerson->appendChild($xmlPasswort);
// append node to root
$xmlRoot->appendChild($xmlPerson);
// create file
$bytes = $xmlDoc->save(__DIR__ . "/personen.xml");
var_dump($bytes);
echo $bytes . "<br>";
echo __DIR__;
?>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<personen>
<benutzer>
<benutzername>Daniel</benutzername>
<passwort>danielISTcool</passwort>
</benutzer>
<benutzer>
<benutzername>Peter</benutzername>
<passwort>12345</passwort>
</benutzer>
</personen>

View File

@@ -0,0 +1,36 @@
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
echo "<h1>XML Ausgabe</h1>";
// load xml file
$xmlDoc = new DOMDocument();
$xmlDoc->load("personen.xml");
echo "<h2>Einfach</h1>";
// simple output
echo $xmlDoc->saveXML();
echo "<hr>";
echo "<h2>Gesamte Knoten</h1>";
// output of individual nodes
$benutzer=$xmlDoc->getElementsByTagName("benutzer");
foreach($benutzer as $benutzerDaten){
echo "<strong>Person: </strong>".$benutzerDaten->textContent."<br>";
}
echo "<hr>";
echo "<h2>Element eines Knotens</h1>";
// output of an node's element
foreach($benutzer as $benutzerDaten){
foreach($benutzerDaten->childNodes as $element){
if($element->nodeName == "benutzername"){
echo "<strong>Person: </strong>".$element->textContent."<br>";
}
}
}

View File

@@ -0,0 +1,70 @@
<h1>CSV -> XML</h1>
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
// DOM struktur
/*
<?xml version="1.0" encoding="utf-8"?>
<personen>
<nr> </nr>
<vorname> </vorname>
<nachname> </nachname>
</personen
*/
// READ CSV FILE
$fileCSV = "e2fi2.csv";
if(!file_exists($fileCSV)){
die("File $fileCSV doesn't exist or not found!");
}
$fp = @fopen($fileCSV, 'r');
if(!$fp){
die("Error while opening CSV file!");
}
$header_array =fgetcsv($fp, 0, ";");
print_r($header_array);
// CREATE XML DOM
$xmlDoc = new DOMDocument("1.0", "utf-8");
$xmlDoc->formatOutput=true;
$xmlRoot = $xmlDoc->createElement("data");
$xmlDoc->appendChild($xmlRoot);
// FILL XML FILE WITH CSV DATA
while(($row_array = fgetcsv($fp, 0, ";")) !== false){
// skip emty value
if ($row_array === null || $row_array === []) {
continue;
}
// create sub elemente
$xmlSchueler = $xmlDoc->createElement("schuelerdata");
// for the count of elements in a row do this
for ($i = 0; $i < count($row_array); $i++){
// make sure there is a header to row
if (!isset($header_array[$i])){
continue;
}
// get current collumn
$column = $header_array[$i];
echo "$row_array[$i]<br>";
// create a new element with name of column and row data
$xmlSchuelerDaten = $xmlDoc->createElement($column, $row_array[$i]);
$xmlSchueler->appendChild($xmlSchuelerDaten);
}
// save element
$xmlRoot-> appendChild($xmlSchueler);
}
// Save whole XML file
$fileXml = "e2fi2.xml";
$xmlDoc->save(__DIR__ . "/$fileXml");

View File

@@ -0,0 +1,19 @@
Nr;Vorname;Nachname
1;Noah;Bassmann
2;Dawid;Brueller
3;Maksim;Dessauer
4;Jonas;Gassenhauer
5;Klara;Goettinger
6;Marc;Hausmueller
7;Timo;Heiterberg
8;Johannes;Kachelmann
9;Konstantin;Matern
10;Anna;Manna
11;Kamil;Nether
12;Tobias;Scholz
13;Eric;Schmidt
14;Ferdinand;Tetris
15;Damien;Tapfer
16;Uemit;Toser
17;Sebastian;Wenger
18;Fabio;Wellenwein
1 Nr Vorname Nachname
2 1 Noah Bassmann
3 2 Dawid Brueller
4 3 Maksim Dessauer
5 4 Jonas Gassenhauer
6 5 Klara Goettinger
7 6 Marc Hausmueller
8 7 Timo Heiterberg
9 8 Johannes Kachelmann
10 9 Konstantin Matern
11 10 Anna Manna
12 11 Kamil Nether
13 12 Tobias Scholz
14 13 Eric Schmidt
15 14 Ferdinand Tetris
16 15 Damien Tapfer
17 16 Uemit Toser
18 17 Sebastian Wenger
19 18 Fabio Wellenwein

View File

@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<data>
<schuelerdata>
<Nr>1</Nr>
<Vorname>Noah</Vorname>
<Nachname>Bassmann</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>2</Nr>
<Vorname>Dawid</Vorname>
<Nachname>Brueller</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>3</Nr>
<Vorname>Maksim</Vorname>
<Nachname>Dessauer</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>4</Nr>
<Vorname>Jonas</Vorname>
<Nachname>Gassenhauer</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>5</Nr>
<Vorname>Klara</Vorname>
<Nachname>Goettinger</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>6</Nr>
<Vorname>Marc</Vorname>
<Nachname>Hausmueller</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>7</Nr>
<Vorname>Timo</Vorname>
<Nachname>Heiterberg</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>8</Nr>
<Vorname>Johannes</Vorname>
<Nachname>Kachelmann</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>9</Nr>
<Vorname>Konstantin</Vorname>
<Nachname>Matern</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>10</Nr>
<Vorname>Anna</Vorname>
<Nachname>Manna</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>11</Nr>
<Vorname>Kamil</Vorname>
<Nachname>Nether</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>12</Nr>
<Vorname>Tobias</Vorname>
<Nachname>Scholz</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>13</Nr>
<Vorname>Eric</Vorname>
<Nachname>Schmidt</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>14</Nr>
<Vorname>Ferdinand</Vorname>
<Nachname>Tetris</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>15</Nr>
<Vorname>Damien</Vorname>
<Nachname>Tapfer</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>16</Nr>
<Vorname>Uemit</Vorname>
<Nachname>Toser</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>17</Nr>
<Vorname>Sebastian</Vorname>
<Nachname>Wenger</Nachname>
</schuelerdata>
<schuelerdata>
<Nr>18</Nr>
<Vorname>Fabio</Vorname>
<Nachname>Wellenwein</Nachname>
</schuelerdata>
</data>

View File

@@ -1,22 +0,0 @@
<?php
/*
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<personen>
<benutzer>
<benuztername>maier1</benuztername>
<passwort>mXabc123m!<passwort>
<vorname>Hubertus</vorname>
<nachname>Maier</nachname>
<email>maier1@bfpohg.de</email>
</benutzer>
<benutzer> ... </benutzer>
</personen>
*/
// create xml docs
$doc = new DOMDocumnet()
?>