PHP sprintf уходит% - PullRequest
       8

PHP sprintf уходит%

164 голосов
/ 08 сентября 2010

Я хочу получить следующий вывод: -

О том, чтобы вычесть 50% от € 27,59 с вашего счета пополнения.

, когда я сделаю что-то вроде этого:-

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

Но это дает мне эту ошибку vsprintf() [function.vsprintf]: Too few arguments in ..., потому что она рассматривает % в 50% также для замены.Как мне избежать этого?

Ответы [ 3 ]

309 голосов
/ 08 сентября 2010

Побег с другим %:

$stringWithVariables = 'About to deduct 50%% of %s %s from your Top-Up account.';
0 голосов
/ 01 октября 2017

Как насчет этого:

$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);

Просто добавьте знак процента в массив переменных

0 голосов
/ 03 июля 2017

Это очень просто.

Поместите еще один % перед исходным %, чтобы избежать его.

Например,

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

Вывод:

%d of 23 = 23
...