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?
>
= >
<
= <
O puoi usare htmlspecialchars
.
$output .= htmlspecialchars(" <machine> ");
Se stai emettendo HTML, non puoi usare solo <
e >
: devi usare le corrispondenti entity framework; HTML : <
e >
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'&'
'"'
(virgolette doppie) diventa'"'
quandoENT_NOQUOTES
non è impostato."'"
(virgoletta singola) diventa'''
solo quandoENT_QUOTES
è impostato.'<'
(minore di) diventa'<'
'>'
(maggiore di) diventa'>'
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:
<machine>
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 <
>
è >
Puoi anche utilizzare la function htmlspecialchars()
per convertirli automaticamente:
echo htmlspecialchars("<machine>");
Devi trasformarli in eg <
e >
– 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;