1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
$rez_name = $_POST["titel"];
$rez_zutat = $_POST["zutaten"];
$rez_zub = $_POST["zubereitung"];
//Klasse erstellen
class Rezept2XML {
private $Cname;
private $Czutaten;
private $Czutaten_arr = array();
private $Czubereitung;
private $newzutaten;
private $dom;
public function __construct ($eins, $zwei, $drei) {
$this->Cname = $eins;
$this->Czutaten = htmlentities($zwei);
$this->Czubereitung = htmlentities($drei);
//var_dump ($this->Cname, $this->Czutaten,$this->Czubereitung);
}
//Fügt die einzelnen Zeilen der Zutaten in ein array ein
private function zutatenInArray () {
$this->newzutaten = nl2br($this->Czutaten);
$this->Czutaten_arr = explode ("<br />", $this->newzutaten);
========================================================
foreach ($this->Czutaten_arr as $key=>$value){
//$value = str_replace("\n\r", "", $value);
$value = str_replace("xd;", " ", $value);
$value= str_replace ("<br />", "", $value);
$value = preg_replace("/
/", "", $value);
}
========================================================
}
function erstelleXMLBaum (){
// create doctype
$dom = new DOMDocument("1.0");
//create root element
$root = $dom->createElement("rezept");
$dom->appendChild($root);
//createVersionInfo
$ver = $dom->createElement("ver");
$root->appendChild($ver);
//textNode for Version
$ver_info = $dom->createTextNode("1");
$ver->appendChild($ver_info);
// create child element: <name>
$name = $dom->createElement("name");
$root->appendChild($name);
// create text node: Rezeptname
//var_dump($this->Cname);
$name_text = $dom->createTextNode($this->Cname);
$name->appendChild($name_text);
//<zutaten>
$zutaten = $dom->createElement("zutaten");
$root->appendChild($zutaten);
$this->zutatenInArray();
//für jedes Array-Element wird ein <zutat> Tag erstellt
foreach ($this->Czutaten_arr as $zutat=>$inhalt) {
//create another child element
$zutat = $dom->createElement("zutat");
$root->appendChild($zutat);
$zutaten_text = $dom->createTextNode($inhalt);
$zutat->appendChild($zutaten_text);
}
//create another child element: <zubereitung>
$zubereitung = $dom->createElement("zubereitung");
$root->appendChild($zubereitung);
$zubereitung_text = $dom->createTextnode($this->Czubereitung);
$zubereitung->appendChild($zubereitung_text);
//$rezept = $dom->saveXML();
$new_rez_name = str_replace(" ", "_", $this->Cname);
$filename = $new_rez_name . ".xml";
$handle = fopen($filename, w);
if(!$handle) exit("File open not successfull - ".$handle);
chmod($filename, 0777);
//Umlaute entfernen
$dom->save($filename);
fclose ($handle);
//printf( "<script type='text/javascript'>" . "self.location='".$filename."';". "</script>");
header("Content-Type: text/xml");
header("Content-Disposition: attachment; filename=\"$filename\"");
readfile($filename);
unlink($filename);
} //Ende function: erstelleXMLBaum
} //Ende class: Rezept2XML
$rezeptersteller = new Rezept2XML($rez_name, $rez_zutat, $rez_zub);
$rezeptersteller->erstelleXMLBaum();
|