web-dev-qa-db-fra.com

PHP sprintf échappant à%

Je veux la sortie suivante: -

Sur le point de déduire 50% de 27,59 € de votre compte de recharge.

quand je fais quelque chose comme ça: -

$variablesArray[0] = '€';
$variablesArray[1] = 27.59;
$stringWithVariables = 'About to deduct 50% of %s %s from your Top-Up account.';
echo vsprintf($stringWithVariables, $variablesArray);

Mais cela me donne cette erreur vsprintf() [function.vsprintf]: Too few arguments in ... car il considère que le % Dans 50% Doit également être remplacé. Comment puis-je y échapper?

166
Sandeepan Nath

Échapper avec un autre %:

$stringWithVariables = 'About to deduct 50%% of %s %s from your Top-Up account.';
312
BoltClock

C'est très facile.

Mettez un autre % devant l'original % pour y échapper.

Par exemple,

$num=23;
printf("%%d of 23 = %d",$num);

Sortie:

%d of 23 = 23
0
user8228837

Et ça:

$variablesArray[0] = '%';
$variablesArray[1] = '€';
$variablesArray[2] = 27.59;
$stringWithVariables = 'About to deduct 50%s of %s %s from your Top-Up account.';
echo vsprintf($stringWithVariables, $variablesArray);

Ajoutez simplement votre signe de pourcentage dans votre tableau de variables

0
3eighty