Pourquoi printf et sprintf ne marche pas ??? [Résolu]

bluemandfr 55 Messages postés vendredi 7 septembre 2007Date d'inscription 16 mai 2013 Dernière intervention - 11 mai 2008 à 03:33 - Dernière réponse : yoman64 962 Messages postés samedi 19 janvier 2002Date d'inscription 2 août 2010 Dernière intervention
- 11 mai 2008 à 04:20
Bonjour à tous !

Cherchant de la documentation sur printf et sprintf, je tombe sur l'exemple fourni dans de mauel officiel .chm de PHP. Je fais un copier/coller du code suivant :

printf("[%s]\n",      $s); // affichage d'une chaîne standard
printf("[%10s]\n",    $s); // justification à droite avec des espaces
printf("[%-10s]\n",   $s); // justification à gauche avec des espaces
printf("[%010s]\n",   $s); // l'espacement nul fonctionne aussi sur les chaînes
printf("[%'#10s]\n",  $s); // utilisation du caractère personnalisé de séparation '#'
printf("[%10.10s]\n", $t); // justification à gauche mais avec une coupure à 10 caractères

voici le résultat sur mon ordi :

[monkey] [ monkey] [monkey ] [0000monkey] ####monkey [many monke]

 KESKISPASSE

Alors plusieurs remarques :

1) le \n ne marche pas : ca ne passe pas à la ligne.
2) le formatage par x fois espace ne marche pas nom plus.

Mais KESKISPASSE

Puis, j'essaye avec sprintf, et alors là.... C'EST L'APOLTHÉOSE  !

RIEN NE S'AFFICHE !!!!!

Est-ce mon PHP est mal configuré ???? (J'utilise Easy PHP auquel je n'ai rien touché, et dont je suis extrêmement content par ailleurs.

ALors pourquoi ce bug étrange ?

Merci à tous de me venie en aide, j'ai besoin de formatter des données venant de MySQL pour les afficher correctement !!!!

BlueMan.
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
yoman64 962 Messages postés samedi 19 janvier 2002Date d'inscription 2 août 2010 Dernière intervention - 11 mai 2008 à 04:20
3
Merci
Salut,

Déja faut ssavoir que sprintf retourne un string et n'affiche rien, donc normal..
Ensuite je vois vraiment pas ton problème si tu as le retour que tu dis, c'est exactement le résultat attendu si je me fis à la chaine que tu passe à printf.....

Sache que \n affiche un retour de ligne mais que la plupart des navigateurs ne prenne pas en compte ce genre de retour (puisqu'ils s'attendent à du html). Affiche la source, tu vas bien voir que tes retours y sont.

Idem pour les espaces, il s'attend à du html, les "blank spaces" ne sont pas pris en compte en html.

Donc tu peux faire echo ''; avant tes printf et echo '

'; à la fin, ou tu peux forcer le navigateur à prendre ça pour du texte en envoyant un header pour lui dire que c'est du texte.

Ou encore utiliser sprintf et faire un str_replace afin de remplacer les espaces et les retour de lignes par des quotes et tags html.

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  

Merci yoman64 3

codes-sources a aidé 81 internautes ce mois-ci

Commenter la réponse de yoman64

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.