str_replace: Wo ist der Fehler?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzahl
attachment
ausgabe
auto
backen
background
body
center
count
datei
dateiname
formatierung
image
katalog
margin
nehme ersetzung
right
roman
tabelle
tag
-
Hi!
Ich habe ein Problem:
Ich wollte eigentlich eine HTML-Seite in ein XHTML-Strict umwandeln, was bedeutet, dass tag/formatierung">Formatierung fast bur noch ?ber CSS m?glich ist. Das als Hintergrund.
Doch weil ich externe CSS-Stylesheets einfach nicht so gerne mag und interne so un?bersichtlich sind, habe ich ein PHP-?rogramm geschrieben, welches die Aufgabe der Formatierung ?bernehmen soll.
Wenn zum Beispiel etwas zentriert dargestellt werden soll, wird statt <div align="center"> im html-Code <div style="{{center}}" im XHMTL-Code gemacht, wobei das PHP-Programm das "{{center}}" in "text-align: center; " um?ndern soll.
Das ist jetzt ein kleines Beispiel, bei vielen, wie z.B. Tabellen sind die Sachen viel gr??er, wie "background-color: #FFFFFF; background-image: backb.jpg; background-attachment: fixed; ", dann macht das Sinn, es nicht so gro? reinzuschreiben.
Das Programm ?ffnet eine Datei, die ihm durch eine $_GET-Variable eingegeben wird. Wenn keine $_GET-variable Vorliegt, stellt es die Startseite dar.
Bevor die Seite allerdings angezeigt wird, sollen die schl?sselw?rter wie {{font1}} usw. durch CSS-Code ersetzt werden.
DAS TUT ES ABER NICHT. Es gibt keine Fehlermeldung, aber keine einzige Sache ist ersetzt!.
Hilfe! Ich finde den Fehler nicht!
Achso: Um die ?bersichtlichkeit der zu ersetzenden W?rter und der zu ladenden Seiten zu gew?hrleisten, habe ich einen "Seiten"- bzw. "Ersetzungkatalog" gemacht, wobei die Daten zuerst in ein Array geschrieben werden und dann mithilfe einer for-Schleife ausgewertet werden sollen.
Ich finde aber keinen Fehler. Kann mir jemand helfen?
<?php //Lese, welche Seite geladen werden soll (Seitenverzeichnis) //Seitenkatalog $katalog['0'] = "index.xhtml"; $katalog['1.0'] = "index"; $katalog['1.1'] = "index.xhtml"; $katalog['2.0'] = "irgentwas"; $katalog['2.1'] = "irgentwas.html"; // Auswertung Seitenkatalog $anzahl = (count($katalog)-1)/2; $stop = FALSE; for ($n=1; (($n < $anzahl) AND ($stop == FALSE)); $n++){ $name = $n . ".0"; $name2 = $n . ".1"; If ($_GET['site'] == $katalog[$name]) { $dateiname = $katalog[$name2]; $stop = TRUE; } else { $dateiname = $katalog[0]; } } //?ffne die Datei, die im letzten Schritt herausgefunden wurde. $datei = fopen($dateiname, "r"); //F?ge die einzelnen Zeilen der Datei in einen String ein. while (!feof($datei)) { $ausgabe = $ausgabe . fgetc($datei); } //Parserfunktionen: Pr?fe, ob etwas ersetzt werde muss. (Ersetzungstabelle) //Ersetzungskatalog //F?r Textausrichtung $katalog2['1.0'] = "{{center}}"; $katalog2['1.1'] = "text-align: center; "; $katalog2['2.0'] = "{{left}}"; $katalog2['2.1'] = "text-align: left; "; $katalog2['3.0'] = "{{right}}"; $katalog2['3.1'] = "text-align: right; "; //f?r <body> Tag $katalog2['4.0'] = "{{body}}"; $katalog2['4.1'] = "background-color: #FFFFFF; background-image: backb.jpg; background-attachment: fixed; "; //f?r Tabellen-Tags //Tabellentyp 1 $katalog2['5.0'] = "{{table1}}"; $katalog2['5.1'] = "border-bottom-width: 0; border-left-width: 0; border-right-width: 0; border-top-width: 0; border-bottom-color: #111111; border-left-color: #111111; border-right-color: #111111; border-top-color: #111111; border-collapse: collapse; "; //<td>1 $katalog2['6.0'] = "{{td1}}"; $katalog2['6.1'] = "background-color: #C1A26C; border-bottom-color: #000000; border-left-color: #000000; border-right-color: #000000; border-top-color: #000000; background-image: backc.jpg; "; //Sonstiges //border=0 $katalog2['7.0'] = "{{border=0}}"; $katalog2['7.1'] = "border-bottom-width: 0; border-left-width: 0; border-right-width: 0; border-top-width: 0; "; //bgcolor=#000000 $katalog2['8.0'] = "{{bgc=000000}}"; $katalog2['8.1'] = "background-color: #000000; "; //background=doki.JPG $katalog2['9.0'] = "{{back=doki}}"; $katalog2['9.1'] = "background-image: doki.JPG; "; //background=farleft.jpg $katalog2['10.0'] = "{{back=farleft}}"; $katalog2['10.1'] = "background-image: farleft.jpg; "; //background=navbak.jpg $katalog2['11.0'] = "{{back=navbak}}"; $katalog2['11.1'] = "background-image: navbak.jpg; "; //background=medpole.JPG $katalog2['12.0'] = "{{back=medpole}}"; $katalog2['12.1'] = "background-image: medpole.JPG; "; //Font Typ 1 $katalog2['13.0'] = "{{font1}}"; $katalog2['13.1'] = "font-family: Tahoma, sans-serif; color: #Ctd1A26C; font-size-adjust: 3; "; //Font Typ 2 $katalog2['14.0'] = "{{font2}}"; $katalog2['14.1'] = "font-family: Tahoma, sans-serif; font-size-adjust: 2; "; //Font Typ 3 $katalog2['15.0'] = "{{font3}}"; $katalog2['15.1'] = "font-family: Tahoma, sans-serif; font-size-adjust: 1; "; //Font Typ 4 $katalog2['16.0'] = "{{font4}}"; $katalog2['16.1'] = " font-size-adjust: 1; color: #FFFFFF; "; //Font Typ 5 $katalog2['17.0'] = "{{font5}}"; $katalog2['17.1'] = "font-family: Times New Roman, Tahoma, sans-serif; font-size-adjust: 1; color: #FFFFFF; "; //font Typ 6 $katalog2['18.0'] = "{{font6}}"; $katalog2['18.1'] = "color: #C1A26C; "; //Nehme ersetzung vor $anzahl = (count($katalog2))/2; for ($n=1; $n < $Anzahl; $n++){ $name = $n . ".0"; $name2 = $n . ".1"; $ausgabe = str_replace($katalog2[$name], $katalog[$name2], $ausgabe); } //Ausgabe echo $ausgabe; ?>
Beitrag ge?ndert: 27.9.2006 15:09:31 von zualio -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das habe ich mitlerweile gemacht, doch es geht immer noch nicht. Ist wohl noch ein 2. Fehler drin...
Hmmm.. -
$ausgabe = str_replace($katalog2[$name], $katalog2[$name2], $ausgabe);
Beitrag ge?ndert: 27.9.2006 18:44:41 von map2 -
Oh,sorry, jetzt muss es ein Designfehler meinerseits sein.
Danke f?r die Mithilfe...
WIESO ZEIGT DIESES BE***** CSS die HINTERGRUNDBILDER NICHT AN...
AAAARG!!!!
?hmm... Also... Danke..
-
background-image: url('farleft.jpg');
-
Danke....
Ich hab dir grad nen Karmapunkt vergeben :-)
Wenn du jetzt aber schon dabei bist:
Wei?t du auch, warum die Gr??en der Buchstaben sich ncht ver?ndern? :-)
-
juhuu, einen tag angemeldet und schon ein karma ;)
mh, wo hast du eigentlich dieses exotische css gelernt? ^^
font-size-adjust gibt es gar nicht (mehr). geb die gr??e doch einfach absolut an, z.B. "font-size:10px;" ...
auch deine border angaben lassen sich optimieren. "border: black 1px" erzeugt einen schwarzen rahmen, ohne jede seite einzeln festzulegen...
-
Hi!
Oh, danke...
Ich glaub, ich lern nix mehr aus B?chern, bevor ich mich informiere, wie alt sie sind.... :-)
(Von wegen Neuauflage 2005...)
Danke! Na, jedenfalls bin ich "exotisch".
Jedenfals ein Vorteil. DANKE! -
Hi!
sorry, weil ich mich nochmal melden muss, aber es gibt anscheinend noch einen Fehler.
Ich schicke grad mal den ?berarbeiteten code:
//Lese, welche Seite geladen werden soll (Seitenverzeichnis) //Seitenkatalog $katalog['0'] = "index.xhtml"; $katalog['1.0'] = "index"; $katalog['1.1'] = "index.xhtml"; $katalog['2.0'] = "irgentwas"; $katalog['2.1'] = "irgentwas.html"; // Auswertung Seitenkatalog $anzahl = (count($katalog)-1)/2; $stop = FALSE; for ($n=1; (($n < $anzahl) AND ($stop == FALSE)); $n++){ $name = $n . ".0"; $name2 = $n . ".1"; If ($_GET['site'] == $katalog[$name]) { $dateiname = $katalog[$name2]; $stop = TRUE; } else { $dateiname = $katalog[0]; } } //?ffne die Datei, die im letzten Schritt herausgefunden wurde. $datei = fopen($dateiname, "r"); //F?ge die einzelnen Zeilen der Datei in einen String ein. while (!feof($datei)) { $ausgabe = $ausgabe . fgetc($datei); } //Parserfunktionen: Pr?fe, ob etwas ersetzt werde muss. (Ersetzungstabelle) //Ersetzungskatalog //F?r Textausrichtung $katalog2['1.0'] = "{{center}}"; $katalog2['1.1'] = "text-align: center; "; $katalog2['2.0'] = "{{left}}"; $katalog2['2.1'] = "text-align: left; "; $katalog2['3.0'] = "{{right}}"; $katalog2['3.1'] = "text-align: right; "; //f?r <body> Tag $katalog2['4.0'] = "{{body}}"; $katalog2['4.1'] = "background-color: #FFFFFF; background-image: url('backb.jpg'); background-attachment: fixed; "; //f?r Tabellen-Tags //Tabellentyp 1 $katalog2['5.0'] = "{{table1}}"; $katalog2['5.1'] = "margin-left:auto; margin-right:auto; border-bottom-width: 0; border-left-width: 0; border-right-width: 0; border-top-width: 0; border-bottom-color: #111111; border-left-color: #111111; border-right-color: #111111; border-top-color: #111111; border-collapse: collapse; "; //<td>1 $katalog2['6.0'] = "{{td1}}"; $katalog2['6.1'] = "background-color: #C1A26C; border-bottom-color: #000000; border-left-color: #000000; border-right-color: #000000; border-top-color: #000000; background-image: url('backc.jpg'); "; //Sonstiges //border=0 $katalog2['7.0'] = "{{border=0}}"; $katalog2['7.1'] = "border-bottom-width: 0; border-left-width: 0; border-right-width: 0; border-top-width: 0; "; //bgcolor=#000000 $katalog2['8.0'] = "{{bgc=000000}}"; $katalog2['8.1'] = "background-color: #000000; "; //background=doki.JPG $katalog2['9.0'] = "{{back=doki}}"; $katalog2['9.1'] = "background-image: url('doki.JPG'); "; //background=farleft.jpg $katalog2['10.0'] = "{{back=farleft}}"; $katalog2['10.1'] = "background-image: url('farleft.jpg'); "; //background=navbak.jpg $katalog2['11.0'] = "{{back=navbak}}"; $katalog2['11.1'] = "background-image: url('navbak.jpg'); "; //background=medpole.JPG $katalog2['12.0'] = "{{back=medpole}}"; $katalog2['12.1'] = "background-image: url('medpole.JPG'); "; //Font Typ 1 $katalog2['13.0'] = "{{font1}}"; $katalog2['13.1'] = "font-family: Tahoma, sans-serif; color: #C1A26C; font-size: 18px; "; //Font Typ 2 $katalog2['14.0'] = "{{font2}}"; $katalog2['14.1'] = "font-family: Tahoma, sans-serif; font-size: 14px; "; //Font Typ 3 $katalog2['15.0'] = "{{font3}}"; $katalog2['15.1'] = "font-family: Tahoma, sans-serif; font-size: 10px; "; //Font Typ 4 $katalog2['16.0'] = "{{font4}}"; $katalog2['16.1'] = " font-size: 9px; color: #FFFFFF; "; //Font Typ 5 $katalog2['17.0'] = "{{font5}}"; $katalog2['17.1'] = "font-family: Times New Roman, Tahoma, sans-serif; font-size: 10px; color: #FFFFFF; "; //font Typ 6 $katalog2['18.0'] = "{{font6}}"; $katalog2['18.1'] = "color: #C1A26C; "; //Tabellenzentrierung $katalog2['19.0'] = "{{tcenter}}"; $katalog2['19.1'] = "margin-left: auto; margin-right: auto; "; //Indent $katalog2['20.0'] = "{{indent}}"; $katalog2['20.1'] = "text-indent: 50 px; "; //font typ 7 $katalog2['21.0'] = "{{font7}}"; $katalog2['21.1'] = "font-family: Tahoma, sans-serif; font-size: 12px; "; //Nehme ersetzung vor $anzahl = (count($katalog2))/2; for ($n=1; $n < $anzahl; $n++){ $name = $n . ".0"; $name2 = $n . ".1"; $ausgabe = str_replace($katalog2[$name], $katalog2[$name2], $ausgabe); } //Ausgabe echo $ausgabe;
Das neue Problem: Ab $katalog2['19.0'] wird nichts mehr ersetzt!
Im erstellten HTML steht da einfach {{tcenter}} usw, aber es wird nichts gemacht!
WAS KANN denn alles schiefgehn *heul* *hoffnung aufgeb*
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage