Pergunta

Estou imprimir uma string como abaixo

Código:

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

Output:

& palavras = Ajuda | Boa

Observe que o último & não é impresso.

Mas quando eu adicionar um caractere de espaço após & então ele será impresso como abaixo

Código:

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

Output:

& palavras = Ajuda | Good &

Agora & é impresso.

Por seu acontecimento e que é a razão para este comportamento?

Foi útil?

Solução

Se você estiver saída para um navegador web você deve estar escapando do & usando &amp; "&" em HTML é muito usada para escapar cordas, e no URL do modo é um char especial, como <> etc.

Outras dicas

Se você está mostrando o seu conteúdo em uma página da web, o navegador irá interpretar & especial. Seleccione em "view source" no seu navegador, e você verá a saída crua. Se você precisa que ele apareça em um contexto html, você terá que passar a corda através htmlspecialchars antes de imprimi-lo. Assim:

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

Esse código funciona para mim

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

saída

& palavras = Ajuda | Good &

O que me leva a uma pergunta: Qual é o contexto? Onde está essa saída de código, você está executando-o em um servidor web e visualizar em um navegador? Não há outro código envolvido que pode estar causando isso?

Se o contexto é algo como a saída em HTML, então você precisa se certificar de que ele está no lugar certo. Em HTML e comercial é especial e você deve escapar. Normalmente, isso significa traduzir em &amp;

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top