Je veux la sortie suivante : -
Nous sommes 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 ...
parce qu'elle considère le %
sur 50%
également pour le remplacement. Comment puis-je m'échapper ?
2 votes
Ma question concerne vsprintf et non printf. J'utilise cette fonction pour la première fois et je ne pouvais pas supposer la similitude entre les deux. Cependant, en cherchant
escape
ouescaping
dans les deuxphp.net/printf
etphp.net/vsprintf
Les deux n'affichent pas la réponse immédiatement. Lorsque je cherche%%
il montre la réponse dans php.net/printf mais je ne savais pas pour%%
! !! Avez-vous cherché la réponse là-bas avant de downvoter ?0 votes
@sandeepan :
vsprintf
appartient à la même famille de fonctions queprintf
. La documentation correcte pour trouver le format, cependant, est la suivante php.net/sprintf . Les deux pages y font même référence : "Voir sprintf() pour une description du format." N'avez-vous pas au moins cliqué dessus ?6 votes
@Col. Shrapnel ok bien prenons php.net/sprintf, où est la réponse ? Elle est au milieu de la page
With printf() and sprintf() functions, escape character is not backslash '\' but rather '%'.
Qu'y a-t-il à décréter ici ? C'est juste que ce n'était pas aussi évident pour moi que pour vous. Si vous trouvez une question dupliquée, vous pouvez mieux écrire le lien. Mais je suis sûr que beaucoup trouveront cette question utile. Mais vous ne l'accepterez pas et vous direz quand même quelque chose, je le sais.0 votes
Oh, je pensais que le deuxième commentaire était du Colonel Shrapnel, désolé.
5 votes
Le SO devrait avoir un drapeau pour les réponses RTFM. C'est presque comme si les gens trollaient juste pour pouvoir dire aux gens de lire les docs. Il avait besoin d'aide et a posé une question, puis quelqu'un a répondu de manière utile et a obtenu des points pour cela. Le monde a continué et l'internet a été utilisé au profit de quelqu'un. Pendant ce temps, je m'échauffe pour une discussion vieille de deux ans.