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

Résolu
papounet007 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
meuhlol Messages postés 1896 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

4 réponses

barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   110
 
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 1896 Date d'inscription   Statut Membre Dernière intervention   673
 
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   Statut Membre Dernière intervention   12
 
Ne pas oublier le point virgule à la fin de l'identité html !!!
< = &lt;
> = &gt;
0
meuhlol Messages postés 1896 Date d'inscription   Statut Membre Dernière intervention   673
 
chez moi il marche sans :)

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

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


?>
0
Colbi97 Messages postés 564 Date d'inscription   Statut Membre Dernière intervention   12
 
Et avec les points-virgules ?

$a = '"Famille TOTO" &lt;aaaa&gt;';
0
papounet007 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   12
 
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   Statut Membre Dernière intervention  
 
Merci. Je ne connaissais pas.
0
Froder
 
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 1896 Date d'inscription   Statut Membre Dernière intervention   673
 
Bien vu Froder! +1
vaut mieux alors utiliser les balises
<pre> et </pre>
0
meuhlol Messages postés 1896 Date d'inscription   Statut Membre Dernière intervention   673
 
Bien vu Froder! +1

Vaut mieux utiliser alors les balises
<pre> et </pre>
0
meuhlol Messages postés 1896 Date d'inscription   Statut Membre Dernière intervention   673
 
Bien vu Froder! +1

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

0