E commerciale alla fine della stringa non visibile in del browser
Domanda
Sono stampare una stringa come di seguito
Codice:
echo "&words=".$rs['pw']."&";
Output:
& parole = Aiuto | Buona
Si noti che l'ultima &
non viene stampato.
Ma quando aggiungo uno spazio dopo &
poi viene stampata come di seguito
Codice:
echo "&words=".$rs['pw']."& ";
Output:
& parole = Aiuto | Good &
Ora &
viene stampato.
Perché suo accadere e che cosa è la ragione di questo comportamento?
Soluzione
Se stai output a un browser web si dovrebbe sfuggire al & utilizzando &
"&" in HTML viene usato molto per sfuggire stringhe, e l'URL del modo è un carattere speciale, come <> ecc
Altri suggerimenti
Se stai output in una pagina web, il browser interpreterà &
speciale. SELECT su "visualizza sorgente" nel browser, e vedrete l'output grezzo. Se avete bisogno di apparire in un contesto html, si dovrà passare la corda attraverso htmlspecialchars
prima di stamparlo. Quindi:
$rs['pw'] = "Help|Good";
echo htmlspecialchars("&words=".$rs['pw']."&");
Questo codice funziona per me
$rs['pw'] = "Help|Good";
echo "&words=".$rs['pw']."&";
Output
& parole = Aiuto | Good &
Il che mi porta a una domanda: Qual è il contesto? Dove si trova questa uscita codice, state facendo funzionare su un server web e la visualizzazione in un browser? Non v'è alcun altro codice coinvolti che possono causare questo?
Se il contesto è qualcosa di simile l'output in HTML quindi è necessario assicurarsi che sia al posto giusto. In HTML e commerciale è speciale e si dovrebbe sfuggire. Di solito questo significa tradurre in &