Ich möchte HTML bedingt ausgeben, um eine Seite zu generieren. Was ist also der einfachste Weg, um mehrzeilige HTML-Schnipsel in PHP 4+ wiederzugeben? Muss ich ein Vorlagenframework wie Smarty verwenden?
echo '<html>', "\n"; // I'm sure there's a better way!
echo '<head>', "\n";
echo '</head>', "\n";
echo '<body>', "\n";
echo '</body>', "\n";
echo '</html>', "\n";
Antworten:
Es gibt verschiedene Möglichkeiten, HTML in PHP wiederzugeben.
1. Zwischen PHP-Tags
2. In einem Echo
Wenn Sie bei Echos doppelte Anführungszeichen in Ihrem HTML-Code verwenden möchten, müssen Sie Echos in einfachen Anführungszeichen wie folgt verwenden:
Oder du kannst ihnen so entkommen:
3. Heredocs
4. Nowdocs (ab PHP 5.3.0)
Template-Engines werden für die Verwendung von PHP in Dokumenten verwendet, die hauptsächlich HTML enthalten. Tatsächlich bestand der ursprüngliche Zweck von PHP darin, eine Vorlagensprache zu sein. Aus diesem Grund können Sie mit PHP kurze Tags verwenden, um Variablen (z
<?=$someVariable?>
. B. ) wiederzugeben .Es gibt andere Template-Engines (wie Smarty, Twig usw.), die die Syntax noch präziser machen (z
{{someVariable}}
. B. ).Der Hauptvorteil der Verwendung einer Template-Engine besteht darin, das Design ( Präsentationslogik ) von der Codierung ( Geschäftslogik ) zu trennen . Es macht den Code auch sauberer und auf lange Sicht einfacher zu warten.
Wenn Sie weitere Fragen haben, können Sie gerne einen Kommentar hinterlassen.
Weitere Informationen zu diesen Themen finden Sie in der PHP-Dokumentation .
HINWEIS: PHP-Kurztags
<?
und?>
werden nicht empfohlen, da sie nur verfügbar sind, wenn sie mit dershort_open_tag
Konfigurationsdatei-Anweisung php.ini aktiviert wurden oder wenn PHP mit der--enable-short-tags
Option konfiguriert wurde . Sie sind unabhängig von den Einstellungen ab 5.4 verfügbar .quelle
<?=$var?>
. Von kurzen Tags wird wie gewohnt abgeraten und sie müssen entfernt werden (<? doStuff() ?>
).Versuchen Sie es so ( Heredoc- Syntax):
quelle
<?php $variable = "bla"; ?> <html> <body class="<?php echo $variable ?>"> </body> </html>
--- zu sehen. Also dachte ich, ein paar Klammern fehlten und war mir nicht sicher, wohin sie genau gehen würden. Es ist immer lustig, wenn meine etwas älteren Kommentare beantwortet werden, da ich damals so neu in all dem war.Sie können die alternative Syntax verwenden. Alternative Syntax für Kontrollstrukturen und Ausbruch aus PHP:
quelle
Grundsätzlich können Sie HTML überall außerhalb von PHP-Tags platzieren. Es ist auch sehr vorteilhaft, alle erforderlichen Daten zu verarbeiten, bevor Daten angezeigt werden, um Logik und Präsentation zu trennen.
Die Datenanzeige selbst kann sich am Ende derselben PHP-Datei befinden, oder Sie können eine separate PHP-Datei einfügen, die hauptsächlich aus HTML besteht.
Ich bevorzuge diesen kompakten Stil:
Hinweis: Möglicherweise müssen Sie
<?php echo $var; ?>
anstelle von<?=$var?>
abhängig von Ihrem PHP-Setup verwenden.quelle
Ich bin Teil dieses Stils:
Ich verwende Tags im ASP-Stil, ja. Die Mischung von PHP und HTML sieht für mich sehr gut lesbar aus. Der Trick besteht darin, die
<%
und%>
-Markierungen genau richtig zu machen.quelle
Ein anderer Ansatz besteht darin, den HTML-Code in eine separate Datei zu stellen und den zu ändernden Bereich in diesem Fall mit einem Platzhalter [[Inhalt]] zu markieren. (Sie können auch sprintf anstelle von str_replace verwenden.)
Alternativ können Sie einfach alle PHP-Inhalte auf dem in einem Puffer erfassten Bildschirm ausgeben, den HTML-Code schreiben und die PHP-Ausgabe wieder auf die Seite setzen.
Es mag seltsam erscheinen, das PHP zu schreiben, es abzufangen und dann erneut zu schreiben, aber es bedeutet, dass Sie alle Arten von Formatierungsaufgaben ( Heredoc usw.) ausführen und die Ausgabe ohne den Aufwand der Seite korrekt testen können Vorlage im Weg. (Das Joomla CMS macht das übrigens so.)
Dh:
quelle
Verwenden Sie einfach die Druckfunktion , um Text in der PHP-Datei wie folgt wiederzugeben:
quelle
quelle
Zusätzlich zur Antwort von Chris B können Sie die folgende Syntax verwenden , wenn Sie sie
echo
trotzdem verwenden möchten, sie dennoch einfach und strukturiert halten und den Code nicht mit<?php stuff; ?>
's spammen möchten .Zum Beispiel möchten Sie die Bilder einer Galerie anzeigen:
Echo verwendet mehrere Parameter, sodass es bei guter Einrückung ziemlich gut aussieht. Auch die Verwendung
echo
mit Parametern ist effektiver als die Verkettung.quelle
oder
quelle
Versuche dies:
quelle
HTML nicht wiedergeben.
Wenn Sie verwenden möchten
Sie sollten dies tun:
quelle
So mache ich es:
quelle