Je veux la sortie suivante: -
Sur le point de déduire 50% de 27,59 € de votre compte 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 le%
en 50%
aussi pour le remplacement. Comment y échapper?
escape
ouescaping
dans les deuxphp.net/printf
et lesphp.net/vsprintf
deux n'affiche pas la réponse immédiatement. Quand je cherche,%%
il montre la réponse dans php.net/printf mais je ne savais pas%%
!!! Avez-vous cherché la réponse avant de voter?vsprintf
appartient à la même famille de fonctions queprintf
. La documentation correcte pour trouver le format, cependant, est php.net/sprintf . Les deux pages le pointent même: "Voir sprintf () pour une description du format." N'avez-vous pas au moins cliqué dessus?With printf() and sprintf() functions, escape character is not backslash '\' but rather '%'.
Qu'y a-t-il à voter ici? Ce n'était tout simplement pas aussi évident pour moi que pour vous. Si vous trouvez une question en double, vous pouvez mieux écrire le lien. Mais je suis sûr que beaucoup trouveront cette question utile. Mais tu n'accepteras pas ça et tu diras quand même quelque chose, je sais.Réponses:
Échappez-vous à un autre
%
:la source
sprintf('This is %s.', the_title())
str_replace('%', '%%', the_title())
C'est très facile.
Mettez-en un autre
%
devant l'original%
pour y échapper.Par exemple,
Production:
la source
Et ça:
Ajoutez simplement votre signe de pourcentage dans votre tableau de variables
la source