Pregunta

Soy imprimir una cadena como a continuación

Código:

echo "&words=".$rs['pw']."&"; 

Salida:

  

& palabras = Ayuda | Buena

Tenga en cuenta que la última & no se imprime.

Pero cuando agrego un carácter de espacio después de & y luego éste se imprime como a continuación

Código:

echo "&words=".$rs['pw']."& "; 

Salida:

  

& palabras = Ayuda | Good &

Ahora se imprime &.

¿Por qué su suceso y cuál es la razón de este comportamiento?

¿Fue útil?

Solución

Si va a dar salida a un navegador web que debe escapar de las y mediante el uso de &amp; "y" en HTML se utiliza mucho para escapar de las cadenas, y en la dirección URL de modo es un caracter especial, como <> etc.

Otros consejos

Si va a dar salida en una página web, el navegador interpretará & especial. Seleccionar en "ver fuente" en su navegador, y verá la salida de crudo. Si es necesario que aparezca en un contexto html, que tendrá que pasar la cadena a través htmlspecialchars antes de imprimirlo. Por lo tanto:

$rs['pw'] = "Help|Good";
echo htmlspecialchars("&words=".$rs['pw']."&");

Este código funciona para mí

$rs['pw'] = "Help|Good";
echo "&words=".$rs['pw']."&";

salida

  

& palabras = Ayuda | Good &

Lo que me lleva a una pregunta: ¿Cuál es el contexto? ¿Dónde es esto salida de código, usted está funcionando en un servidor web y la visualización en un navegador? ¿No hay otro código implicado que puede estar causando esto?

Si el contexto es algo así como la salida en HTML, entonces usted necesita para asegurarse de que está en el lugar correcto. En HTML signo es especial y que debe escapar de ella. Por lo general, eso significa que se traduce en &amp;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top