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?

È stato utile?

Soluzione

Se stai output a un browser web si dovrebbe sfuggire al & utilizzando &amp; "&" 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 &amp;

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top