PHP wird im Webbrowser nicht richtig gerendert [Duplikat]
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
Es gibt ein paar Dinge, die getan werden können.
- 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;
?>
- 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
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');
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>
?>