[resolu] string.format en php

Eléphant du PHP | 109 Messages

24 mars 2009, 09:53

Bonjour

en dot.net il y a un string.format très pratique
par exemple

Code : Tout sélectionner

Const str as string = "Bonjour {0},{1},{0},{2}" Dim res as string = string.format(str,A,B,C) donnera A,B,A,C
comment peut on faire ca en php5 ?

j'ai une chaine de caractère [tr][td ]?[/td][/tr]

je veux obtenir <tr><td>CONTENU</td></tr>

merci
Modifié en dernier par rufus_ le 24 mars 2009, 16:17, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mars 2009, 10:10

Bonjour,

oui, l'équivalent est sprintf()
$str = "Bonjour %s,%s,%s,%s";
echo sprintf($str, 'A','B','A','C');
// Va afficher "Bonjour A,B,A,C"
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 109 Messages

24 mars 2009, 10:17

Bonjour

{0}{1}{2}{0} est différent de %s,%s,%s,%s

dans {0}{1}{2}{0} chaque valeur est remplacée selon sa variable et {0} existe 2 fois

il faudrait en php un truc du genre %s0,%s1%s2,%s0

Eléphant du PHP | 185 Messages

24 mars 2009, 10:25

$str = "Bonjour %1$s,%2$s,%1$s,%3$s"; 
echo sprintf($str, 'A','B','C'); 
// Va afficher "Bonjour A,B,A,C"

Eléphant du PHP | 109 Messages

24 mars 2009, 10:33

ca marche avec
$str = 'Bonjour %1$s,%2$s,%1$s,%3$s';

j'ai une erreur avec
$str = "Bonjour %1$s,%2$s,%1$s,%3$s"; >> Undefined variable: s

on dirait qu'il accepte pas les "

merci pour l'aide

ViPHP
ViPHP | 3607 Messages

24 mars 2009, 11:58

C'est normal que tu ais une erreur, puisque tu as le signe $ qui est interprété comme un début de nom de variable...
$str = "Bonjour %1\$s,%2\$s,%1\$s,%3\$s";
Après tu aurais pu aller chercher dans la doc une fois la fonction donnée par Zeus... ;)
Tout est là bas!

Eléphant du PHP | 109 Messages

24 mars 2009, 12:35

Je pensais qu'en php tout ce qui était entre quote ou double quote était un string

ViPHP
ViPHP | 3607 Messages

24 mars 2009, 12:45

Alors effectivement se sont des string, mais les doubles quotes sont interprétés au préalable...
Test ceci:
<?php
$var=1;
echo "$var = $var";
echo "\$var = $var";
echo '$var = $var';
echo '$var=',"$var";
?>

Eléphant du PHP | 109 Messages

24 mars 2009, 15:16

donc si on veut du string c'est systématiquement quote , pour se simplifier la vie

merci

ViPHP
ViPHP | 3607 Messages

24 mars 2009, 15:24

Ben euh... c'est pas très clair ta question :s
Si on veut du string... (à part aller dans un magasin de lingerie...)
Je vois pas trop ce que tu souhaites?
Donnes nous un cas concret ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mars 2009, 16:13

Si on veut du string... (à part aller dans un magasin de lingerie...)
:shock: :afraid: :evil:

:langue:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 109 Messages

24 mars 2009, 16:17

c'est bon mon problème est résolu merci

Mammouth du PHP | 2937 Messages

24 mars 2009, 16:39

donc si on veut du string c'est systématiquement quote , pour se simplifier la vie
Pour les différentes syntaxes possibles des chaînes de caractères en PHP, le manuel est ton ami. ;)

Eléphant du PHP | 109 Messages

24 mars 2009, 16:48

merci