Intereting Posts
Проблемы с добавлением набора столбцов базы данных в массив PDO bindParam для даты не работает После отправки формы, когда в форме есть несколько вкладок, и на каждой вкладке есть вкладка таблицы (которая может добавить строку таблицы) Является ли использование суперглобалов непосредственно хорошим или плохим в PHP? mysql concat string с результатом PHP register_shutdown_function для запуска, когда сценарий убит из командной строки? Отправить массив с помощью скрипта Ajax для PHP Не показывать это, если URL-адрес содержит следующее Отправить одноразовую ссылку для входа через hook_mail Instagram Realtime update tag – получение пустых данных, почему? Предоставление данных в файл XML Когда использовать подготовленные заявления? PHP :: Получить содержимое запроса POST Как остановить галерею javascript php на последнем или первом изображении? Плавно добавление 1 к предыдущему значению строки?

PHP sprintf escaping%

Я хочу получить следующий результат:

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

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