Ausgelagertes html-Dokument oder mit PHP erstellen?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
betrachte
code
datum
eintrag
erstellen
funktion
gewinn
inhalt
layout
orgie
problem
quellcode
rap
schleife
string
tabelle
unterschied
url
verhindern
zeile
-
Hallo ihr Lieben,
Ich hab mal eine Frage für meine Website. Ist es geschickter, wenn ich z.B. immer eine Tabelle als Layout benutze und diese dann mit Inhalt fülle, als ausgelagertes html-Dokument zu erstellen, dass ich dann einbinde und in einer PHP-Schlefenfunktion durch ersetzen mit Inhalt fülle oder doch lieber die Tabelle direkt in der PHP-Funktion erstellen?
Danke -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Guten Tag,
ich würde sagen, dass es darauf ankommt, ob du dein Layout leicht ändern können möchtest und deshalb eine Vorlage erstellst die du leicht ändern kannst. Oder ob du sagst, dass du das Layout an den Inhalt anpassen möchtest, dann ist es sinnvoller die Tabelle live zu generieren.
Ich hoffe ich konnte dir damit deine Entscheidung erleichtern. -
rap-brainbow schrieb:
Meinst du hier wirklich Ebene oder eher Zeile?
Dass Problem beim Erstellen in der PHP-Funktion ist, dass wenn ich nachher den Quellcode betrachte, sich alles in einer Ebene befindet! Kann ich das irgendwie ändern?
Wenn du Zeile meinst kannst du ja ganz normal mit Konstrukten wie "\n" Zeilenumbrüche erstellen ;)
Das hilft dir möglicherweise auch noch zum Verständnis:
Das ergibt ganz normalen lesbaren HTML-Code mit Eintückung und Zeilenumbrüchen; es sieht so aus als ob es von Hand geschrieben worden wäre.<?php $titel = 'Eine Seite'; $inhalt = array( 'Eintrag 1' => 'Das enthält irgend eine nützliche Info', 'Eintrag 2' => 'Hier gehört was anderes informatives hin.' ); ?><!DOCTYPE html> <html> <head> <title><?php echo($titel); ?></title> </head> <body> <table> <?php foreach($inhalt as $name => $daten) { ?> <tr> <td><?php echo($name); ?></td> <td><?php echo($daten); ?></td> </tr> <?php } ?> </table> </body> </html>
-
Jap, ich meinte Zeile, hatte gedacht ich hätte es verbessert...
Danke, genau das hat mich immer davon abgehalten, das in einer PHP-Funktion zu lösen weil es natürlich sehr unübersichtlich wird. Dann werd ich das jetzt so machen. -
rap-brainbow schrieb:
das sehe ich sogar zweifach anders
... weil es natürlich sehr unübersichtlich wird.
1. du kannst eine 'echo'-orgie verhindern, was viel performanter ist
2. und weil es genau so übersichtlich ist:
<?php // am anfang machst du alle "berechnungen": $titel = 'Eine Seite'; $inhalt = array( 'Eintrag 1' => 'Das enthält irgend eine nützliche Info', 'Eintrag 2' => 'Hier gehört was anderes informatives hin.' ); $rows = null; foreach($inhalt as $name => $daten) { $rows .= <<< EOT <tr> <td>$name</td> <td>$daten</td> </tr> EOT; } // wenn alles fertig ist, fügst die fertigen daten einfach in dein html echo <<< EOT <!DOCTYPE html> <html> <head> <title>$titel</title> </head> <body> <table> $rows </table> </body> </html> EOT;
Beitrag zuletzt geändert: 9.4.2012 0:05:35 von hemiolos -
hemiolos schrieb:
Und wenn du genügend oft deine Schleife durchlaufen lässt wird deine Variante womöglich genauso viel Performance verbrauchen, weil du jeweils Variablen expandierst und danach Strings zusammenfügst. Hingegen wird bei echo-Orgie innerhalb der Schleife 2x echo ausgeführt und weder eine Variable expandiert noch Escapesequenzen expandiert noch Strings zusammengefügt, was soll daran also so schlimm sein? In diesem Fall sollte der Unterschied doch fast 0 sein.
rap-brainbow schrieb:
das sehe ich sogar zweifach anders
... weil es natürlich sehr unübersichtlich wird.
1. du kannst eine 'echo'-orgie verhindern, was viel performanter ist
Über Übersichtlichkeit lässt sich streiten; das ganze war nur ein Beispiel, dass der HTML-Code schön mit Zeilenumbrüchen und Einrückungen sein kann, auch wenn PHP genutzt wird. -
hackyourlife schrieb:
aber nur fast ;)
... In diesem Fall sollte der Unterschied doch fast 0 sein.
und wenn jetzt jemand sagt 'ja bei 5mio schleife so wenig gewinn ...', kann ich nur sagen, jeder gewinn ist ein gewinn.<?php $t1 = microtime(1); for($i = 0; $i < 5000000; $i++) { echo '1'; } $t2 = microtime(1); $o = ''; for($i = 0; $i < 5000000; $i++) { $o .= '1'; } $t3 = microtime(1); $res = "<hr />$o<hr />$t1 ** $t2 ** $t3<hr />"; exit(''.$res);
-
Eigentlich geht es mir hauptsächlich um die Übersicht, vor allem im Quellcode bei der Fehlersuche. Aber ich denke ich bin bei der PHP-Variante besser bedient.
Trotzdem einen Dank für eure Tipps -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage