Ответ 1
Побег с другим %
:
$stringWithVariables = 'About to deduct 50%% of %s %s from your Top-Up account.';
Мне нужен следующий вывод: -
О том, чтобы вычесть 50% € 27,59 из вашей учетной записи Top-Up.
когда я делаю что-то вроде этого: -
$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%
также для замены. Как мне избежать этого?
Побег с другим %
:
$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);
Просто добавьте свой знак процента в свой массив переменных