Pourquoi ce codechaîne de PHP écourtée
$string = "[email protected]#$%^&*(<[email protected]";
echo $string;
seule sortie:
[email protected]#$%^&*(
Est-ce un bug PHP?
Pourquoi ce codechaîne de PHP écourtée
$string = "[email protected]#$%^&*(<[email protected]";
echo $string;
seule sortie:
[email protected]#$%^&*(
Est-ce un bug PHP?
Parce que < est un caractère réservé dans HTML :)
Utilisez <
et >
Lire ceci pour plus d'informations
http://www.w3schools.com/HTML/html_entities.asp
Vous pouvez utiliser la fonction htmlspecialchars de convertir ces caractères spéciaux
Je ne vois pas que:
Peut-être que vous avez des personnages étranges dans votre dossier? Assurez-vous que vous utilisez un encodage "normal" sur votre code source, aussi bien.
que vous devez faire:
echo htmlentities($string);
pour afficher la chaîne comme il est sur un navigateur. Cela est dû au fait que le <
dans la chaîne est interprété par le navigateur comme le début d'une balise HTML.
Donc, ce n'est pas PHP mais le navigateur qui provoque ce comportement. Si vous faites exactement le même affichage sur une ligne de commande, vous verrez tous les caractères.
Si vous affichez la sortie dans un navigateur Web, le <
commence une balise et n'est généralement pas affiché mais interprété dans l'analyseur de structure de document HTML. En outre, un $
à l'intérieur d'une chaîne entre guillemets doubles est interpolé comme le nom de variable qui le suit; essayez d'utiliser des guillemets simples où cela n'arrivera pas.
Essayez ceci:
$string = '[email protected]#$%^&*(<[email protected]';
echo htmlentities($string);
est-il généré dynamiquement la chaîne? – PHP