PHP wird im Webbrowser nicht richtig gerendert [Duplikat]

Nov 01 2020

Beispiel-PHP-Code

wolf@linux:~$ cat 1-new-line.php <?php echo "Hello World Foo Bar!"; $aString = '
First Line
Second Line
Third Line';
echo $aString; ?> wolf@linux:~$

Es läuft wie erwartet in CLI

wolf@linux:~$ php 1-new-line.php Hello World Foo Bar! First Line Second Line Third Line wolf@linux:~$ 

Aber nicht über den Browser

Was ist falsch an diesem Code? Wie rendere ich es richtig im Webbrowser?

Antworten

2 user14251572 Nov 01 2020 at 14:06

Es gibt ein paar Dinge, die getan werden können.

  1. Sie können HTML- <pre>Tags wie unten gezeigt in PHP-Code oder außerhalb einfügen.

Das HTML- <pre>Tag wird zum Anzeigen von vorformatiertem Text verwendet. Das Code-Tag umgibt den zu markierenden Code.

Browser rendern normalerweise Vortext in einer Schriftart mit fester Tonhöhe, mit Leerzeichen im Takt und ohne Zeilenumbruch.

www.tutorialspoint.com/html/html_pre_tag.htm

<pre>

<?php
echo "Hello
World
Foo Bar!";

$aString = ' First Line Second Line Third Line'; echo $aString;
?>
  1. Verwendung header('Content-Type: text/plain');im PHP-Code.

Z.B

<?php

header('Content-Type: text/plain');

echo "Hello
World
Foo Bar!";

$aString = ' First Line Second Line Third Line'; echo $aString;
?>

Ausgabe

4 Evert Nov 01 2020 at 13:54

Browser interpretieren die Ausgabe von PHP als HTML und in HTML werden Zeilenumbrüche durch Leerzeichen ersetzt.

Wenn Sie lernen möchten, wie Zeilenumbrüche in einem Browser ausgeführt werden, verwenden <br />oder umbrechen Sie Sätze in <p>Tags.

Sie können einem Browser auch anweisen, Ihre Ausgabe als Text und nicht als HTML zu behandeln. Verwenden Sie in diesem Fall den folgenden Header (vor jeder Ausgabe):

header('Content-Type: text/plain');
1 JamesMcGlone Nov 01 2020 at 13:56

Sie rendern es in einem Browser ohne HTML-Formatierung. Wenn Sie es in <pre></pre>Tags einschließen, bleibt die Klartextformatierung (Zeilenumbrüche und Leerzeichen) beim Rendern im Browser erhalten.

<pre>
<?php
echo "Hello
World
Foo Bar!";
</pre>


$aString = ' First Line Second Line Third Line'; <pre> echo $aString;
</pre>
?>