Signes "<" et ">" dans une chaine de caractères PHP

Résolu/Fermé
papounet007 Messages postés 3 Date d'inscription mardi 15 octobre 2013 Statut Membre Dernière intervention 16 octobre 2013 - 15 oct. 2013 à 22:45
meuhlol Messages postés 1879 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 30 novembre 2021 - 17 oct. 2013 à 15:43
Problème supposé tout simple sur lequel je butte depuis plusieurs heures :

J'ai fait un code PHP de test qui est le suivant :


<?php
$a = '"Famille TOTO" <aaaa>'; // guillemet simple puis guillemet double au début
echo $a;



Cela n'affiche que la première partie : "Famille TOTO". Si j'enlève "aaaa", çà marche, mais dès que j'ajoute n'importe quoi entre les signes "<" et ">", la fin n'apparait plus !

Je n'ai rien trouvé dans les manuels PHP qui indiquerait que "<" ait une signifie spéciale dans les chaines de caractères.

J'ai essayé sur le serveur de test de mon PC (wampserver sous Windows 7) et sur mon hébergeur OVH : c'est pareil !

Une idée ?

Merci de votre aide.

4 réponses

barale61 Messages postés 1196 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 23 novembre 2022 107
Modifié par barale61 le 15/10/2013 à 22:56
As-tu essayé la concaténation et en remplaçant les "<" et ">" par leur entité html ?



<?php
$a = '"Famille TOTO" ."<aaaa>" // guillemet simple puis guillemet double au début
echo $a;
?>
0
meuhlol Messages postés 1879 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 30 novembre 2021 671
Modifié par meuhlol le 15/10/2013 à 22:59
au lieu de < tu mets & lt (sans espace entre & et lt)
au lieu de > tu mets & gt (sans espace entre & et gt)

xD

(____(_bdKey____________()~
Pensez à voter pour des réponses.
Pensez à cliquer sur "Résolu" si votre problème est réglé.
0
Colbi97 Messages postés 564 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 25 novembre 2015 12
16 oct. 2013 à 09:27
Ne pas oublier le point virgule à la fin de l'identité html !!!
< = &lt;
> = &gt;
0
meuhlol Messages postés 1879 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 30 novembre 2021 671
16 oct. 2013 à 09:42
chez moi il marche sans :)

$a = '"Famille TOTO" & ltaaaa& gt';
toujours sans espace après le &
0

<?php
$a = "'Famille TOTO' <aaaa>";
echo htmlspecialchars($a);


?>
0
Colbi97 Messages postés 564 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 25 novembre 2015 12
16 oct. 2013 à 10:56
Et avec les points-virgules ?

$a = '"Famille TOTO" &lt;aaaa&gt;';
0
papounet007 Messages postés 3 Date d'inscription mardi 15 octobre 2013 Statut Membre Dernière intervention 16 octobre 2013
Modifié par papounet007 le 16/10/2013 à 11:11
Bon sang, mais bien sûr !

J'avais déjà pensé à mettre "& lt;" dans mon expression, mais ce n'est pas possible car je veux utiliser $a comme argument d'une fonction mail().

Mais je n'avais pas fait attention que le résultat de mon echo allait se retrouver dans du code html et donc que les "<" allaient être interprétés par html, en l'occurrence ignorés avec leur contenu.

En résumé, $a contient bien ce qu'il est sensé contenir, mais son affichage par echo était faux.

Merci à tous !
0
Colbi97 Messages postés 564 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 25 novembre 2015 12
Modifié par Colbi97 le 16/10/2013 à 11:18
dans ce cas, si tu veux afficher du texte contenant des balises html ou des chaînes de caractères pouvant être interprétées en tant que telles, tu le place entre les balises
<xmp> et </xmp>

Ces balises servent à afficher tout ce qui se trouve entre elles tel quel sans interprétation.
0
papounet007 Messages postés 3 Date d'inscription mardi 15 octobre 2013 Statut Membre Dernière intervention 16 octobre 2013
16 oct. 2013 à 11:20
Merci. Je ne connaissais pas.
0
Attention avec cette balise xmp elle est déprécié depuis html 4.

http://www.w3.org/wiki/HTML/Elements/xmp
0
meuhlol Messages postés 1879 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 30 novembre 2021 671
17 oct. 2013 à 15:41
Bien vu Froder! +1
vaut mieux alors utiliser les balises
<pre> et </pre>
0
meuhlol Messages postés 1879 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 30 novembre 2021 671
17 oct. 2013 à 15:43
Bien vu Froder! +1

Vaut mieux utiliser alors les balises
<pre> et </pre>
0
meuhlol Messages postés 1879 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 30 novembre 2021 671
17 oct. 2013 à 15:43
Bien vu Froder! +1

Vaut mieux utiliser alors les balises
<pre> et </pre>

0