Question

Je suis imprimer une chaîne comme ci-dessous

Code:

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

Sortie:

  

& mots = Aide | Bon

Notez que le dernier & n'est pas imprimé.

Mais quand j'ajoute un espace après & il est imprimé comme ci-dessous

Code:

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

Sortie:

  

& mots = Aide | Good &

& est imprimé.

Pourquoi sa passe et ce qui est la raison de ce comportement?

Était-ce utile?

La solution

Si vous êtes sortie à un navigateur Web, vous devez être Echapper à la & en utilisant &amp; « et » en HTML est beaucoup utilisé pour échapper à cordes, et ce dans l'URL donc un caractère spécial, comme <> etc.

Autres conseils

Si vous êtes sortie dans une page Web, le navigateur interprétera & spécial. Sélectionnez à « voir la source » dans votre navigateur, et vous verrez la sortie brute. Si vous avez besoin d'apparaître dans un contexte html, vous devrez passer par la chaîne htmlspecialchars avant de l'imprimer. Donc:

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

Ce code fonctionne pour moi

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

Sortie

  

& mots = Aide | Good &

Ce qui me conduit à une question: Quel est le contexte? Où est cette sortie de code, vous exécutez sur un serveur web et l'affichage dans un navigateur? N'y at-il autre code impliqué qui peut être la cause?

Si le contexte est quelque chose comme la sortie en HTML, alors vous devez vous assurer qu'il est au bon endroit. En HTML esperluette est spécial et vous devriez y échapper. Habituellement, cela signifie traduire en &amp;

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top