Ersetzen: Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgabe
babel
beispiel
beitrag
benutzer
database
datei
daten
eintrag
ergebnis
formular
herkunft
inhalt
interface
kommentar
mache
po
taunus
textdatei
zeile
-
Hi!
Ich habe ein Problem: Ich mache gerade aus Spaß ein Programm, welches aus einer Textdatei (Datenbankteil) Daten ausliest und diese in anderer Form ausgibt (Ausgabeteil). Nun klappt das allerdings nicht so wie ich dachte.
Das Konzept ist folgendes:
-Benutzer gibt Textdatei an
-Daten werden ausgelesen
-Daten werden in Mehrdimensionalen Array geladen, dessen Assoziativer Schlüssel der Name des Objekts ist
-Platzhalter in Templatefiles werden mit den Daten ersetzt und ausgegeben
Leider funktioniert das alles nicht so wie ich dachte.
Könnt ihr mir helfen?
Index.php:
<?php if (!$_POST["gesendet"]) { //Wenn noch keine Datei gesendet wurde, zeige das Formular an include "Interface.html"; } else { //Öffne Datei $datei = fopen($_POST["localfile"], "r"); //Datenbank aus Datei erstellen while (!feof($datei)) { //Datei Zeile für Zeile auslesen und in Datenbank schreiben $text=fgets($datei); If (substr($text,0,3)=="Name=") { $Name = substr($text,4); $Database[$Name][$Name] = $Name; } else { $pos = strpos($text, "="); If ($pos) { $name=substr($text,0,$pos); $inhalt=substr($text,$pos+2); $Database[$Name][$name]=$inhalt; } } } //Datenbank sortieren krsort($Database); fclose($datei); //Datenbank und Templates einarbeiten $template_path = "templates/" . $_POST["template"] . "/"; //Öffne Headerdatei $datei=fopen($template_path . "header.tpl", "r"); while (!feof($datei)) { $temp = fgets($datei); $tpl_header = $tpl_header . $temp . "<br>"; } fclose($datei); //Öffne Eintragsdatei $datei=fopen($template_path . "eintrag.tpl", "r"); while (!feof($datei)) { $temp = fgets($datei); $tpl_eintrag = $tpl_eintrag . $temp . "<br>"; } fclose($datei); //Öffne Footherdatei $datei=fopen($template_path . "foother.tpl", "r"); while (!feof($datei)) { $temp = fgets($datei); $tpl_foother = $tpl_foother . $temp . "<br>"; } fclose($datei); //Daten einarbeiten //Beiträge foreach($Database as $Array){ $temp_eintrag = $tpl_eintrag; foreach($Array as $key => $wert) { $key = "||" . $key . "||"; $temp_eintrag = str_replace ($key, $wert, $temp_eintrag); $header = str_replace($key, $wert, $tpl_header); $foother = str_replace($key, $wert, $tpl_foother); } $eintrag = $eintrag . $temp_eintrag; } //Zusammenfassen (Entmontierung) $ergebnis = $header . $eintrag . $foother; //Ausgabe echo "<html><head><title>Ausgabe</title></head><body>" . $ergebnis . "</body> </html>"; } ?>
Templates/Wiki-Babel/Eintrag.tpl
| ||Name||
| <code><nowiki>{{</nowiki>[[||Ort||]]<nowiki>}}</nowiki></code>
| ||Komentar||
| {{||Ort||}}
|-
Templates/Wiki-Babel/Header.tpl
{|border="1" width="100"
!Name
!Ort
!Kommentar
!Beispiel
|-
Templates/Wiki-Babel/foother.tpl
|}
Auszulesende Datei:
--ID 1
Name= Herkunft: Aus dem Taunus
Ort= Benutzer:Vorlage/aus dem Taunus
Kommentar=
--ID 2
Name= Herkunft: Aus Weilrod
Ort= Benutzer:Zualio/aus Weilrod
Kommentar=
Doch die Ausgabe ist folgende:
{|border="1" width="100"
!Name
!Ort
!Kommentar
!Beispiel
|-
| Herkunft: Aus Weilrod
| {{[[Benutzer:Zualio/aus Weilrod ]]}}
| ||Komentar||
| {{Benutzer:Zualio/aus Weilrod }}
|-
|}
Aber eigentlich sollte sie so sein:
{|border="1" width="100"
!Name
!Ort
!Kommentar
!Beispiel
|-
| Herkunft: Aus dem Taunus
| <code><nowiki>{{</nowiki>[[||Benutzer:Vorlage/aus dem Taunus||]]<nowiki>}}</nowiki></code>
|
| {{Benutzer:Zualio/aus dem Taunus}}
|-
| Herkunft: Aus Weilrod
| <code><nowiki>{{</nowiki>[[||Benutzer:Vorlage/aus Weilrod||]]<nowiki>}}</nowiki></code>
|
| {{Benutzer:Zualio/aus Weilrod}}
|-
|}
Die Datei interface.html zeigt nur ein Formular zur Datenübergabe ein. Das müsste alles stimmen. Nur wieso wird es im Endeffekt nicht richtig angezeigt?
Hilfe!
Zualio
Beitrag geaendert: 1.12.2006 2:46:13 von zualio -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich weiß, das sieht alles ziemlich kompliziert aus, aber eigentlich ist es ganz einfach.
Ich habe die Dateien alle in ein Zip-Archiv gepackt. Das müsste alles viel übersichtlicher machen:
http://download.lima-city.de:81/zualio/PHPDatabase.zip -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage