Antworten auf deine Fragen:
Neues Thema erstellen

HTML + PHP Code anzeigen - nicht ausführen?!

Trabilady

Aktives Mitglied

Hey ihr Lieben,

ich steh grade ein wenig auf dem Schlauch. :uhm:
Wie kann ich auf einer Webseite HTML-Tags und PHP-Code für andere lesbar machen? Ich meine damit nicht den Seitenquelltext, sondern Codezeilen, wie man sie in Tutorials sieht. Dass man "pre" nutzen kann, habe ich schon herausgefunden, aber das zeigt mir dann noch immer nicht die Codezeile als "normalen Text" auf der Webseite an.

Simples Beispiel:

PHP:
<!DOCTYPE html>
<html>
<head>
    <title>...</title>
</head>

<body>

    <p>Die erste Zeile in HTML<br/></p>
    <?php echo "Die zweite Zeile in PHP<br/>"; ?>
    <p>Die dritte Zeile in HTML<br/></p>
    <?php echo "Die vierte Zeile in PHP<br/>";
          echo "Die f&uuml;nfte Zeile in PHP";
     ?>

<pre>
    <p>Die erste Zeile in HTML<br/></p>
    <?php echo "Die zweite Zeile in PHP<br/>"; ?>
    <p>Die dritte Zeile in HTML<br/></p>
    <?php echo "Die vierte Zeile in PHP<br/>";
          echo "Die f&uuml;nfte Zeile in PHP";
     ?>
</pre>
</body>
</html>
Liebe Zweitaktgrüße und vielen Dank
 

ArcaJeth

Noch nicht viel geschrieben

AW: HTML + PHP Code anzeigen - nicht ausführen?!

Du musst dazu die spitzen Klammern umschreiben ... aus < wird &lt; und das sollte reichen, evtl auch > auch noch ändern (in &gt; ) ... 1:1 übernehmen geht so weit ich weiß nicht (oder ich übersehe gerade was ^^)
 

tr4ze

Mod | Forum

Teammitglied
PSD Beta Team
AW: HTML + PHP Code anzeigen - nicht ausführen?!

Wenn du sowieso schon PHP nutzt, wäre es da nicht einfacher mit Stringfunktionen zu arbeiten.

kleines Beispiel:

PHP:
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Test</title>
    </head>
    <body>
        <?php
        
        $html=' 
                <div>
                <p>Hallo Html </p>
                </div>';
        
        echo $html;// normnale Ausgabe
        
        
        echo htmlspecialchars($html).'<br/>';// Html Ausgabe mit htmlspecialchars()
        
        echo htmlentities($html).'<br/>';// Html Ausgabe mit htmlentities()
        
        echo nl2br (htmlentities($html));// Html Ausgabe mit nl2br() & htmlentities()
        ?>
    </body>
</html>
 

Trabilady

Aktives Mitglied

AW: HTML + PHP Code anzeigen - nicht ausführen?!

Wenn du sowieso schon PHP nutzt, wäre es da nicht einfacher mit Stringfunktionen zu arbeiten.

Getestet und für einfacher befunden :rot: Danke für den Hinweis :blumen:

Edit: Wie kann ich in Deinem Beispiel dem DIV eine Klasse geben, sodass ich die Codeausgabe mit CSS stylen kann?! :uhm: - okay. Problem gelöst ;)
 
Zuletzt bearbeitet:

jaderbass

Noch nicht viel geschrieben

AW: HTML + PHP Code anzeigen - nicht ausführen?!

Hallo Trabilady,

es gibt in PHP auch zwei Funktionen. Damit wird der Quelltext sogar mit Syntax-Highlighting ausgegeben:

PHP:
highlight_string()
highlight_file()
einfach mal bei G.. danach suchen.

Gruß
jaderbass
 

Trabilady

Aktives Mitglied

AW: HTML + PHP Code anzeigen - nicht ausführen?!

Hallo Trabilady,

es gibt in PHP auch zwei Funktionen. Damit wird der Quelltext sogar mit Syntax-Highlighting ausgegeben:

PHP:
highlight_string()
highlight_file()
einfach mal bei G.. danach suchen.

Gruß
jaderbass

Danke für den Hinweis - ich werd dann gleich mal danach suchen.

Habe grade aber ein anderes Anfängerproblem mit dem oben genannten Code... Wie kann ich in diesem Beispiel einen Zeilenumbruch erzwingen?

PHP:
<div class="code">
    <?php

    $html='
        <p>Die erste Zeile in HTML</p>
        <?php echo "<p>Die zweite Zeile in PHP</p>";?>
        <p>Die dritte Zeile in HTML</p>
        <?php
        echo "<p>Die vierte Zeile in PHP</p>";
        echo "<p>Die f&uuml;nfte Zeile in PHP</p>";
        ?>';

    echo htmlspecialchars ($html).'<br/>';
    ?>
</div>
Habe es so versucht, aber es passiert nichts. Wie kann ich den String unterbrechen, einen Zeilenumbruch erzwingen und den String dann fortführen? :uhm:

PHP:
<div class="code">
    <?php

    $html='
        <p>Die erste Zeile in HTML</p>'."\n".
        '<?php echo "<p>Die zweite Zeile in PHP</p>";?>'."\n".
        '<p>Die dritte Zeile in HTML</p>'."\n".
        '<?php
        echo "<p>Die vierte Zeile in PHP</p>";'."\n".
        'echo "<p>Die f&uuml;nfte Zeile in PHP</p>";
        ?>';

    echo htmlspecialchars ($html).'<br/>';
    ?>
</div>
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: HTML + PHP Code anzeigen - nicht ausführen?!

Ein Zeilenumbruch wird vom Browser gesetzt. Genauer: wenn der Browser denkt, dass ein Zeilenumbruch angedacht wäre, macht er einen. Das passiert zum Beispiel nach <p>-Tags oder eben nach dem <br>.

Du könntest also explizit die korrekten Tags setzen, aber dann würden sie durch htmlspecialchars umgewandelt und anders interpretiert werden. Da du aber "\n" setzt, was zwar in einem Textdokument aber nicht für den Browser selbst ein Umbruch ist, kannst du PHP anweisen, diese nachträglich in explizite HTML-Umbrüche umzuschreiben.

Lange Rede, kurzer Sinn: benutze nl2br(), also bspw.:
PHP:
    echo nl2br(htmlspecialchars ($html)).'<br/>';
Schicker wäre aber wirklich highlight_string() für deine Aufgabe, wie schon vorher angemerkt.

Übrigens hat psd-tutorials.de ein für zukünftige Fragen in dieser Richtung.


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.564
Beiträge
1.538.064
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben