Hey Leute,
braeuchte Hilfe. Ich versuche gerade ein kleines FAQ-Sysyem mit PHP zu schreiben, ohne MySQL sondern nur mit XML (wo die FAQs gespeichert sind).
Meine XML sieht so aus:
Nun, was ihc jetzt machen will ist das ich die XML lese (jeden <faq>), in eine array speichere und dann weiter an Smarty gebe welches es dann ausgibt (in einer template).
So habe ich das jetzt aufgebaut:
Meine index.php:
XMLMyReader:
1. Wenn ich versuche $mainarray auszugeben, kommt nur der erste Zweig raus, leider wird der rest nicht angezeigt:
Und dann will ich das ganze in der Template ausgeben, mit dem Array_Key auch noch dazu, wie koennte ich das ganze anstellen damit es funktioniert?
Es waere sehr nett wenn mir jemand helfen koennte. (Sorry wegen mein Deutsch, lebe seit 2 Jahren in den USA ^^ )
-Danke!
Epic
braeuchte Hilfe. Ich versuche gerade ein kleines FAQ-Sysyem mit PHP zu schreiben, ohne MySQL sondern nur mit XML (wo die FAQs gespeichert sind).
Meine XML sieht so aus:
XML-Quellcode
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Document : faq.xml Description: Contains all of the faq entries.-->
- <root> <entries> <faq user="admin"> <question>What is FAQ?</question> <answer>Frequently Asked Questions and their answers. DUH.</answer> <category>General</category> <date>08/02/12</date> <time>00:08</time> </faq> <faq user="admin"> <question>How is it so simple?</question> <answer>Magic.</answer> <category>General</category> <date>08/02/12</date> <time>00:09</time> </faq> </entries></root>
Nun, was ihc jetzt machen will ist das ich die XML lese (jeden <faq>), in eine array speichere und dann weiter an Smarty gebe welches es dann ausgibt (in einer template).
So habe ich das jetzt aufgebaut:
Meine index.php:
PHP-Quellcode
- //Declarations$currentPage = "index.html";//Required classesrequire_once('includes/XMLMyReader.php');require_once('includes/config.inc.php');require_once('libs/Smarty.class.php');
- $myXMLRead = new XMLMyReader();$mainarray[] = $myXMLRead->ReadXMLFile($XMLFile);
- $smarty = new Smarty();$smarty->setTemplateDir('templates/');$smarty->setCompileDir('templates_c/');$smarty->setConfigDir('configs/');$smarty->setCacheDir('cache/');//For smarty assignsrequire_once("includes/smarty_assign.php");$smarty->assign('myEntries', $mainarray);
- $smarty->display($template . '/' . $currentPage);
XMLMyReader:
PHP-Quellcode
- <?php
- class XMLMyReader { public function ReadXMLFile($file) { $xml = simplexml_load_file($file); $entries = $xml->entries->faq; for ($i = 0; $i < sizeof($entries); $i++) { $author = $entries[$i]->attributes()->user; $question = $entries[$i]->question; $answer = $entries[$i]->answer; $category = $entries[$i]->category; $date = $entries[$i]->date; $time = $entries[$i]->time; $entries_array=array("author" => $author, "question" => $question, "answer" => $answer, "category" => $category, "date" => $date, "time" => $time); return $entries_array; } }
- }
- ?>
1. Wenn ich versuche $mainarray auszugeben, kommt nur der erste Zweig raus, leider wird der rest nicht angezeigt:
Quellcode
- Array( [0] => Array ( [author] => SimpleXMLElement Object ( [0] => admin )
- [question] => SimpleXMLElement Object ( [0] => What is FAQList? )
- [answer] => SimpleXMLElement Object ( [0] => A simple FAQ script written in PHP based on XML. It's small and perfect for websites who don't want a huge script for faq list. )
- [category] => SimpleXMLElement Object ( [0] => General )
- [date] => SimpleXMLElement Object ( [0] => 08/02/12 )
- [time] => SimpleXMLElement Object ( [0] => 00:08 )
- )
- )
Und dann will ich das ganze in der Template ausgeben, mit dem Array_Key auch noch dazu, wie koennte ich das ganze anstellen damit es funktioniert?
Es waere sehr nett wenn mir jemand helfen koennte. (Sorry wegen mein Deutsch, lebe seit 2 Jahren in den USA ^^ )
-Danke!
Epic