[RESOLU] signes "<" et ">" dans une chaine de caractères PHP

Petit nouveau ! | 3 Messages

15 oct. 2013, 22:15

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.

Eléphanteau du PHP | 11 Messages

15 oct. 2013, 23:10

Ce n'est pas un problème de php mais de HTML.
tout ce qui est entre < et > est considéré comme une balise html. Si c'est une balise que le navigateur ne reconnais pas comme <aaaa> il ne l'affiche simplement pas.

tu peut faire ça:

Code : Tout sélectionner

$a = '"Famille TOTO" <aaaa>'; echo $a;
ou

Code : Tout sélectionner

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 oct. 2013, 08:01

Modération :
Afin d'obtenir plus de réponses, le sujet a été déplacé dans un forum plus approprié.
Il en faut peu pour être heureux ......

Petit nouveau ! | 3 Messages

16 oct. 2013, 11:14

Merci beaucoup ! Effectivement, le contenu de $a était bon mais pas son affichage. J'ai tellement l'habitude de rajouter des "echo" pour tester mes variables que je n'avais pas fait attention que le résultat serait interprété en HTML et donc le contenu entre "<" et ">" ignorés.

Eléphant du PHP | 116 Messages

16 oct. 2013, 11:46

Salut,

Dans ce cas essaye de tester tes variables avec var_dump : tu verras le type, la taille et d'autres infos utiles te permettant d'éviter des erreurs ! :-)
@+,
Computarelier

Petit nouveau ! | 3 Messages

16 oct. 2013, 15:01

Je ne connaissais pas. Merci de l'idée.

ViPHP
xTG
ViPHP | 7331 Messages

16 oct. 2013, 18:36

A noter tout de même que var_dump n'est pas magique, car elle va aussi interpréter le HTML (ou plutôt ne va pas le protéger et donc ton navigateur va l'interpréter). :)

Le mieux est de se faire une petite fonction de debug qui passerai ta variable par un traitement à base de htmlspecialchars() ou autre.

Eléphant du PHP | 116 Messages

16 oct. 2013, 18:54

Ah ouais.. Merci :-)
string(12) "Hello
"
Mais on voit quand même que ce string a une drôle de tête ;-)
@+,
Computarelier

Mammouth du PHP | 2278 Messages

17 oct. 2013, 20:38

Tu peux aussi tester les syntaxes Heredoc ou newdoc.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD