Запишите отформатированную строку в переменную:
<?php$number = 9;$str = "Пекин";$txt = vsprintf("В %s миллионов велосипедов %u.",array($number,$str));echo $txt;?>Функция vsprintf() записывает отформатированную строку в переменную.
В отличие от sprintf(), аргументы vsprintf() находятся в массиве. Элементы массива будут вставлены в основную строку под знаком процента (%). Эта функция выполняется шаг за шагом. При первом знаке % вставляется первый элемент массива, при втором знаке % — второй элемент массива и так далее.
Примечание. Если символов % больше, чем параметров arg, необходимо использовать заполнители. Заполнитель вставляется после символа % и состоит из числа и "$". См. пример 2.
Совет: Связанные функции: fprintf(), vfprintf(), printf(), sprintf() и vprintf().
vsprintf ( формат, массив )
параметр | описывать |
---|---|
формат | Необходимый. Указывает строку и способ форматирования переменных внутри нее. Возможные значения формата: %% — возвращает знак процента % %b - двоичное число %c — символ, соответствующий значению ASCII. %d — Десятичное число со знаком (отрицательный, 0, положительный) %e — используйте научную запись строчными буквами (например, 1.2e+2). %E — используйте научную запись в верхнем регистре (например, 1.2E+2). %u — десятичное число без знака (больше или равно 0) %f — число с плавающей запятой (локальная настройка) %F — число с плавающей запятой (неродная настройка) %g — более короткая версия %e и %f %G — короче %E и %f %o - восьмеричное число %s - строка %x - Шестнадцатеричное число (строчные буквы) %X — шестнадцатеричное число (заглавные буквы) Дополнительные значения формата. Должен быть помещен между % и буквой (например, %.2f): + (Добавьте + или - перед числом, чтобы определить знак числа. По умолчанию отмечаются только отрицательные числа, а положительные числа не отмечаются) ' (Указывает, что использовать в качестве заполнения, по умолчанию — пробелы. Его необходимо использовать со спецификатором ширины. Например: %'x20s (используйте «x» в качестве заполнения)) - (значение левой корректировочной переменной) [0-9] (определяет минимальную ширину значения переменной) .[0-9] (указывает количество десятичных знаков или максимальную длину строки) Примечание. Если используется несколько приведенных выше значений формата, они должны использоваться в указанном выше порядке и не могут быть нарушены. |
Аргаррей | Необходимый. Массив с параметрами, которые будут вставлены в строку формата через символы %. |
Возвращаемое значение: | Возвращает значение массива в виде форматированной строки. |
---|---|
PHP-версия: | 4.1.0+ |
Используйте значение формата %f:
<?php$num1 = 123;$num2 = 456;$txt = vsprintf("%f%f",array($num1,$num2));echo $txt;?>Используйте заполнители:
<?php$number = 123;$txt = vsprintf("С двумя десятичными знаками: %1$.2f<br>Без десятичных знаков: %1$u",array($number));echo $txt;?>Используйте sprintf(), чтобы продемонстрировать все возможные значения формата:
<?php$num1 = 123456789;$num2 = -123456789;$char = 50; // Символ ASCII 50 равен 2 // Примечание. Значение формата "%%" возвращает процентное значение Signecho sprintf("%%b = % b",$num1)."<br>"; // Двоичное числоecho sprintf("%%c = %c",$char)."<br>"; // Символ ASCII sprintf("%%d = %d",$num1)."<br>"; // Десятичное число со знакомecho sprintf("%% d = %d",$num2)."<br>"; // Десятичное число со знакомecho sprintf("%%e = %e",$num1)."<br>"; // Научная запись (строчная)echo sprintf("%%E = %E",$num1)."<br>" // Научная запись (прописная)echo sprintf("%%u = %u",$num1)."<; br>"; // Десятичное число без знака (положительное)echo sprintf("%%u = %u",$num2)."<br>"; // Десятичное число без знака (отрицательное)echo sprintf("%%f = %f",$num1)."<br>" // Число с плавающей запятой (с учетом локальных настроек)echo sprintf("%%F = %F",$num1)."< br>"; // Число с плавающей запятой (не учитывает локальные настройки)echo sprintf("%%g = %g",$num1)."<br>"; // Меньше %e и %fecho sprintf("%%G = %G",$num1)."<br>" // Короче %E и %fecho sprintf("%%o = %o",$num1)."<br>"; ; // Восьмеричное числоecho sprintf("%%s = %s",$num1)."<br>" // Stringecho sprintf("%%x = %x",$num1)."<br>"; // Шестнадцатеричное число (строчные буквы)echo sprintf("%%X = %X",$num1)."<br>" // Шестнадцатеричное число (прописные буквы)echo sprintf("%%+d = %+d", $num1)."<br>"; // Спецификатор знака (положительный)echo sprintf("%%+d = %+d",$num2)."<br>"; (отрицательный)?>Демонстрация спецификаторов строк:
<?php$str1 = "Привет";$str2 = "Привет, мир!";echo vsprintf("[%s]",array($str1)".<br>";echo vsprintf("[%8s] ",array($str1)".<br>";echo vsprintf("[%-8s]",array($str1)".<br>";echo vsprintf("[%08s]",array($str1)".<br>"; echo vsprintf("[%'*8s]",array($str1)".<br>";echo vsprintf( "[%8.8s]",array($str2)".<br>" ?>;