PHP non viene visualizzato correttamente nel browser web [duplicato]

Nov 01 2020

Codice PHP di esempio

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

Funziona come previsto nella CLI

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

Ma non tramite browser

Cosa c'è di sbagliato in questo codice? Come renderlo correttamente nel browser web?

Risposte

2 user14251572 Nov 01 2020 at 14:06

Ci sono alcune cose che possono essere fatte.

  1. Puoi inserire <pre>tag HTML all'interno del codice PHP o all'esterno come mostrato di seguito.

Il <pre>tag HTML viene utilizzato per indicare il testo preformattato. Il tag del codice circonda il codice da contrassegnare.

I browser normalmente rendono il pre-testo con un carattere a passo fisso, con spazi vuoti intatti e senza ritorno a capo automatico.

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. Usa header('Content-Type: text/plain');nel codice php.

Per esempio

<?php

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

echo "Hello
World
Foo Bar!";

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

Produzione

4 Evert Nov 01 2020 at 13:54

I browser interpretano l'output di PHP come HTML e in HTML le nuove righe vengono sostituite da spazi.

Se vuoi imparare come eseguire l'interruzione di riga in un browser, usa <br />o racchiudi le frasi nei <p>tag.

Puoi anche dire a un browser di trattare il tuo output come testo e non come HTML. In tal caso, utilizzare la seguente intestazione (prima di qualsiasi output):

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

Stai eseguendo il rendering in un browser senza alcuna formattazione HTML. Avvolgendolo in un <pre></pre>tag manterrà la sua formattazione in chiaro (newline e spazi bianchi) quando viene visualizzato nel browser.

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


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