Stampa in less di e maggiore rispetto ai simboli in PHP

Ho problemi a cercare di printingre i simboli < > in HTML usando PHP.

Sto aggiungendo una string " <machine> " a una variabile.

Esempio:

 $output .= " <machine> "; echo $output; 

Ho provato a usare le fughe, ma questo non ha aiutato. Qualche consiglio?

&gt; = >
&lt; = <

O puoi usare htmlspecialchars .

 $output .= htmlspecialchars(" <machine> "); 

Se stai emettendo HTML, non puoi usare solo < e > : devi usare le corrispondenti entity framework; HTML : &lt; e &gt;

Se hai una string in PHP e vuoi sostituire automaticamente quei caratteri con le corrispondenti entity framework; HTML, ti interesserà la function htmlspecialchars() (quoting) :

Le traduzioni eseguite sono:

  • '&' (e commerciale) diventa '&amp;'
  • '"' (virgolette doppie) diventa '&quot;' quando ENT_NOQUOTES non è impostato.
  • "'" (virgoletta singola) diventa '&#039;' solo quando ENT_QUOTES è impostato.
  • '<' (minore di) diventa '&lt;'
  • '>' (maggiore di) diventa '&gt;'

Nel tuo caso, una porzione di codice come questa:

$ output = "";

 echo htmlspecialchars($output, ENT_COMPAT, 'UTF-8'); 

Avrei ottenuto il seguente codice HTML come output:

  &lt;machine&gt; 

E, nel caso in cui, se vuoi codificare più caratteri, dovresti dare un'occhiata alla function htmlentities() .

Il tuo problema non è con PHP, ma piuttosto con il fatto che < e > sono usati in HTML. Se si desidera che vengano visualizzati nel browser, è probabile che si desideri printingre le versioni dell'entity framework; con escape:

  • < is &lt;
  • > è &gt;

Puoi anche utilizzare la function htmlspecialchars() per convertirli automaticamente:

 echo htmlspecialchars("<machine>"); 

Devi trasformarli in eg &lt; e &gt; – vedi le funzioni htmlentities() o htmlspecialchars() .

 echo htmlentities($output); 

o

 echo htmlspecialchars($output); 

Se non vuoi preoccuparti di passare manualmente la tua string e sostituire le entity framework;.

I simboli <e> dovrebbero essere mostrati nel codice sorgente HTML, ma "<machine>" è interpretato come tag XML. Utilizza htmlentities () per convertire tutti i caratteri speciali nella string nei loro equivalenti HTML oppure usa "& lt; machine & gt;"

Soluzione:

 $output .= " <machine> "; $output = htmlentites($output); echo $output;