Les accents et DOS et exec()

Eléphanteau du PHP | 35 Messages

07 nov. 2007, 17:06

Bonjour,

Bon voilà, j'ai un problème avec la gestion des accents sur une sortie de ping/DOS.
echo("<?xml version=\"1.0\" encoding=\"iso-8859-15\"?>\n");
...
$ip = $rlt['ip']; /* je récupère une variable $ip */
$resultat = exec("ping $ip", $output);
while (list(,$val) = each($output)) :
	print "<pre>$val</pre>"; /* et j'écris le résultat de mon ping $ip */
endwhile ; 
...
Et voici ma sortie écran:
Envoi d'une requ�te 'ping' sur 10.89.1.65 avec 32 octets de donn�esÿ:

R�ponse de 10.89.1.65ÿ: octets=32 temps=43 ms TTL=28
R�ponse de 10.89.1.65ÿ: octets=32 temps=43 ms TTL=28
R�ponse de 10.89.1.65ÿ: octets=32 temps=44 ms TTL=28
R�ponse de 10.89.1.65ÿ: octets=32 temps=44 ms TTL=28

Statistiques Ping pour 10.89.1.65:
Paquetsÿ: envoy�s = 4, re�us = 4, perdus = 0 (perte 0%),
Dur�e approximative des boucles en millisecondesÿ:
minimum = 43ms, maximum = 44ms, moyenne = 43ms
Les caractères français et les espaces ne sont pas pris en compte.
Le même ping dans une fenêtre cmd ne pose pas de problème de codage de caractères.
J'ai essayé utf8_encode, htmlentities etc...rien ne fonctionne !!
Je ne vois pas.

Merci
Peu de gens sont dignes de ne croire à rien.

Eléphant du PHP | 445 Messages

07 nov. 2007, 17:17

echo("<?xml version="1.0\" encoding=\"iso-8859-15\"?>\n"); 
Est ce que tu le vois dans le source ca ?

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

07 nov. 2007, 17:25

A noter qu'il manque un antislash devant la première guillemet de version=\"1.0\" ...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 445 Messages

07 nov. 2007, 17:33

A noter qu'il manque un antislash devant la première guillemet de version="1.0" ...
Prends son code et essayes de mettre un \ devant son premier "

J'ai essayer et il ne s'affiche pas.

Eléphanteau du PHP | 35 Messages

07 nov. 2007, 17:36

J'ai le \....dans le source....il s'agit d'un problème de slash avec ce forum
echo("<?xml version=\"1.0\" encoding=\"iso-8859-15\"?>\n");
il n'appparait pas à l'écran de PHPForum !!??
echo("<?xml version=\"1.0\" ....);
il apparait bien dans une citation !!??
Modifié en dernier par zest le 07 nov. 2007, 17:40, modifié 2 fois.
Peu de gens sont dignes de ne croire à rien.

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

07 nov. 2007, 17:39

Vi mais ça c'est normal... si le charset est erroné, les caractères sont remplacés par des glyphes abscons dans l'affichage. Du coup si tu récupère la sortie qu'il a posté ci-dessus, tu auras le glyphe et non la valeur d'origine pour tester... :)

(ou alors tu as testé le script complet avec une ip ? ... dans ce cas le soucis est peut être imputable à la fonction exec() qui perdrait l'information sur le charset ?)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...