PHP в функции sprintf побега %

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

о том, чтобы вычесть 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 ответов


избежать его с другим %:

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

Это очень легко.

поставить другой % у % чтобы избежать этого.

например,

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

выход:

%d of 23 = 23

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

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

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