html Ausgabe bedingen durch if ohne echo

Hallo
es geht um folgendes:
Ein spezieller html-code soll nur angezeigt werden, wenn eine If-Bedingung erfüllt ist.
Allerdings möchte ich nicht den ganzen Code in ein echo packen, da ich keine Lust habe, alle " zu escapen und es auch irgendwie schöner finde, wenn reiner html-code auch so bleibt und nicht erst vom Server verarbeitet wird.
Die einzige Möglichkeit, die mir eingefallen ist, wäre den Code per include() einzufügen. Das ist aber eigentlich unsinnig, da ich den Code nur auf dieser einen Seite brauche. Gibt es weitere Möglichkeiten?

Here document - Wikipedia, the free encyclopedia

[php]echo<<<EOT
Bla bla bla
EOT;[/php]

Danke hat geklappt

[PHP]

<?PHP // hier phpcode ?>

hier html code

<?PHP // wieder phpcode [/PHP] geht auch

Dafür hat man die ’ erfunden. Alle Strings gehören zwischen ein ’ und ein '.

Hier werden templatesysteme genutzt, schau mal nach hier: Smarty : Template Engine

Include ist dafür da um php code zu laden, du suchst wohl PHP: file_get_contents - Manual ?

Ja aber dann funktioniert meine if-abfrage ja nicht
danke auch für eure beiden Antworten, aber das von Commodore war genau das, was ich gesucht habe :slight_smile:

Doch, das würde damit auch gehen.

Ehrlich?
das heißt ich kann schreiben
[php]

<?php If (isset(bla)) { ?> ... ... <?php { ?> [/php]

Ja,
In meinen ersten Versuchen habe ich das so gemacht und es funktionierte.

Danke, wieder was dazugelernt ;Jump

[PHP]echo „<a href="link.html">Linktext“;[/PHP]
[PHP]echo ‚Linktext‘;[/PHP]

Ist beides das Gleiche. Wenn du mit Single-Quotes dein echo startest musst du die " nicht escapen.

sagte ich bereits. der tipp mit dem template system kam wohl auch nicht an :wink:

In diesem Falle ja, aber generell nein. Schreibst Du eine Variable in den Linktext wird sie im zweiten Fall nicht aufgelöst und der Variablenname mit dem $ wird ausgegeben.
an sollte Single Quotes nicht nur aus Faulheit benutzen, sondern sich dessen bewusst sein, was man tut.

Grüße,
-Efchen

Kam beides an und ich danke dir für deine Antwort.
Zu den Singlequotes:
Mitten in meinem html-code steckt eine Variable. Ich hatte um diese eine variable darzustellen [php]<?php echo "$bla"; ?>[/php] genutzt.
Erst hinterher ist mir eingefallen, das es schöner wäre, wenn das ganze nur unter einer speziellen bedingung dargestellt wird.
Mit " hätte ich jetzt alle " escapen müssen (relativ viele, da es sich um ein Formular handelt) mit ’ wär meine Variable nicht mehr dargestellt worden.
Zum Template-System: Ehrlich gesagt habe ich das ganze nicht wirklich verstanden, was da steht mein Englisch ist leider nicht so gut :(. Und ich denke für meine kleine Anwendung wäre es auch etwas übertrieben, das zu installieren. Aber ich werde es im Hinterkopf behalten, falls ich mal wieder auf so ein Problem treffe.
Vielen dank an alle!

PHP ist schon eine prima Template-Engine, Smarty etc. sind überflüssig. So sehen meine Views immer aus (Short Tags und Alternative Syntax):
[PHP]<? if (isset($foobar)): ?>

<?= $foobar ?>

<? endif ?>[/PHP]

Ich find persönlich schöner, wenn der PHP code mit HTML Unterbrochen wird, folgende schreibweise anzuwenden:

[php]

<?php if ($bedingung): ?>

HTML

<?php elseif ($bedingung2): ?>

HTML

<?php endif; ?>

[/php]

Edit

Sorry Leute, habe nicht gesehen das es eine Seite 2 gibt oO

das sehe ich völlig anders, mit dem glauben bin ich auch nicht alleine.

Ja es benutzen viele noch Template-Engines, aber es werden immer weniger. Aus heutiger Sicht kann ich sagen, dass es Schwachsinn war auf Template-Engines zu setzen. Das ging aus dem inneren Bedürfnis heraus Funktion von Ansicht zu trennen. Genau wie man HTML (heute) vom Aussehen (CSS) trennt und JavaScript vom Aussehen (CSS) und HTML.

Nun gibt es aber MVC (die Idee dahinter ist steinalt), welches beschreibt dass man sein Verhalten (C) vom Aussehen (V) und Datenabfragen (M) trennt. Und weil das so gut funktioniert und PHP schon immer dazu gedacht war in HTML eingebettet zu werden (das war die einzig neue Idee in PHP) kann man seine Views (V) direkt in PHP schreiben. Die Vorteile sind folgende:
[ul]
[li]Die Sprache bietet alle Möglichkeiten
[/li][li]Man muss nicht die Sprache einer Template-Engine lernen
[/li][li]Es ist schneller, denn PHP wird schneller interpretiert, als PHP selbst je ein Template interpretieren könnte.
[/li][/ul]

Und um dir zu beweisen, dass wirklich viele „Templates“ in PHP schreiben habe ich mal Ausschnitte der Dokus der großen Frameworks hinzugefügt:
[ul]
[li]Zend Framework
[/li][li]The Cake Blog Tutorial :: The Manual :: 1.1 Collection :: The Cookbook
[/li][li]My first symfony project | symfony | Web PHP Framework
[/li][/ul]
(bei allen dreien runter zu den Views scrollen)