php sprintf ведущие нули

Форматирование числа с ведущими нулями в PHP

Есть ли для этого функция PHP?

ОТВЕТЫ

Ответ 1

В качестве альтернативы вы также можете использовать str_pad :

Ответ 2

Чтобы повторить это:

Чтобы получить его:

Это должно сделать трюк

Ответ 3

Ответ 4

Когда мне нужно 01 вместо 1, для меня работало следующее:

Ответ 5

Хотя я не совсем уверен, что вы хотите сделать, вы, вероятно, ищете sprintf.

Ответ 6

РЕДАКТИРОВАТЬ (как-то запрошенными вниз), со страницы, указанной выше, здесь образец «нулевые полные числа»:

Ответ 7

Я не уверен, как интерпретировать комментарий, говорящий «Он никогда не будет более 8 цифр», и если он ссылается на ввод или вывод. Если это относится к выходу, вам придется иметь дополнительный вызов substr() для обрезания строки.

Чтобы скопировать первые 8 цифр

Чтобы скопировать последние 8 цифр

Ответ 8

Если номера ввода всегда содержат 7 или 8 цифр, вы также можете использовать

Ответ 9

Я написал эту простую функцию для создания этого формата: 01:00:03

Секунды всегда отображаются (даже если ноль). Минуты отображаются, если они больше нуля или требуется время или часы. Часы показываются, если больше нуля или если нужны дни. Дни показываются, если больше нуля.

Ответ 10

Ответ 11

Это прекрасно работает:

Ответ 12

Ответ 13

Вы всегда можете злоупотреблять жонглированием:

Ответ 14

Если вы можете добавить ноль или что-нибудь в строку. лайк

Источник

sprintf

(PHP 4, PHP 5, PHP 7, PHP 8)

sprintf — Возвращает отформатированную строку

Описание

Список параметров

Строка формата состоит из нуля или более директив: обычные символы (за исключением % ), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Argnum

Флаги

ФлагОписание
Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space)Дополняет результат пробелами. Это поведение по умолчанию.
0Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
‘ (char)Дополняет результат символом (char).
Ширина

Целое число, определяющее минимальное количество символов, которое будет напечатано.

Точность

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0.

Замечание: Попытка использовать спецификатор позиции со значением больше, чем PHP_INT_MAX приведёт к выводу предупреждения.

Если P > X ≥ −4, преобразование будет в стиле «f» и точность будет P − (X + 1). В обратном случае, преобразование будет в стиле «e» и точность будет P − 1.

Спецификатор c игнорирует значения ширины и дополнения

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Возвращаемые значения

Список изменений

ВерсияОписание
8.0.0Функция больше не возвращает false в случае возникновения ошибки.

Примеры

Пример #1 Argument swapping

Строка формата поддерживает нумерацию и перемешивание аргументов.

Результат выполнения данного примера:

Теперь представим, что строка форматирования задаётся в стороннем файле. Это обычная практика при необходимости поддержки нескольких языков. Представим, что строка была переписана таким образом:

Дополнительным приятным моментом является то, что мы можем использовать один параметр для нескольких подстановок.

При использовании нумерованных аргументов, спецификатор позиции n$ должен стоять сразу же за символом процента ( % ), до любого другого спецификатора, как показано ниже.

Пример #2 Использование символа заполнения

Результат выполнения данного примера:

Пример #3 Спецификатор позиции в комбинации с другими спецификаторами

Результат выполнения данного примера:

Пример #4 sprintf() : целое с лидирующими нулями

Пример #5 sprintf() : форматирование денежных единиц

Результат выполнения данного примера:

Пример #6 sprintf() : научная нотация

Результат выполнения данного примера:

Смотрите также

User Contributed Notes 36 notes

With printf() and sprintf() functions, escape character is not backslash ‘\’ but rather ‘%’.

1. A plus sign (‘+’) means put a ‘+’ before positive numbers while a minus sign (‘-‘) means left justify. The documentation incorrectly states that they are interchangeable. They produce unique results that can be combined:

2. Padding with a ‘0’ is different than padding with other characters. Zeros will only be added at the front of a number, after any sign. Other characters will be added before the sign, or after the number:

There are already some comments on using sprintf to force leading leading zeros but the examples only include integers. I needed leading zeros on floating point numbers and was surprised that it didn’t work as expected.

This threw me a little off. To get the desired result, one needs to add the precision (2) and the length of the decimal seperator «.» (1). So the correct pattern would be

Please see http://stackoverflow.com/a/28739819/413531 for a more detailed explanation.

Here is how to print a floating point number with 16 significant digits regardless of magnitude:

$format = ‘There are %1$d monkeys in the %s and %s ‘;
printf($format, 100, ‘Chennai’, ‘Bangalore’);

Expecting to output
«There are 100 monkeys in the Chennai and bangalore»

But, this will output
«There are 100 monkeys in the 100 and Chennai»

Because, the second and Third specifiers takes 1rst and 2nd arguments. Because it is not assigned with any arguments.

Using argument swapping in sprintf() with gettext: Let’s say you’ve written the following script:

#: file.php:9
#, ycp-format
msgid «The %2\\$s contains %1\\$d monkeys»
msgstr «»

Notice how an extra backslash has been added by xgettext.

Once you’ve translated the string, you must remove all backslashes from the ID string as well as the translation, so the po file will look like this:

#: file.php:9
#, ycp-format
msgid «The %2$s contains %1$d monkeys»
msgstr «Der er %1$d aber i %2$s»

If you use the default padding specifier (a space) and then print it to HTML, you will notice that HTML does not display the multiple spaces correctly. This is because any sequence of white-space is treated as a single space.

To overcome this, I wrote a simple function that replaces all the spaces in the string returned by sprintf() with the character entity reference » » to achieve non-breaking space in strings returned by sprintf()

The old «monkey» example which helped me a lot has sadly disappeared.

I’ll Re-post it in comment as a memory.

/*
%b = ‘10100111101010011010101101’
%c = ‘A’
%d = ‘43951789’
%e = ‘4.395179e+7’
%u = ‘43951789’
%u = ‘18446744073665599827’
%f = ‘43951789.000000’
%o = ‘247523255’
%s = ‘43951789’
%x = ’29ea6ad’
%X = ’29EA6AD’
%+d = ‘+43951789’
%+d = ‘-43951789’
*/

$s = ‘monkey’ ;
$t = ‘many monkeys’ ;

Note that when using the argument swapping, you MUST number every argument, otherwise sprintf gets confused. This only happens if you use number arguments first, then switch to a non-numbered, and then back to a numbered one.

I had a nightmare trying to find the two’s complement of a 32 bit number.

This worked magic for me. previously I was trying to use

Hope this helps someone fighting with two’s complement in PHP.

A more complete and working version of mb_sprintf and mb_vsprintf. It should work with any «ASCII preserving» encoding such as UTF-8 and all the ISO-8859 charsets. It handles sign, padding, alignment, width and precision. Argument swapping is not handled.

$newformat = «» ; // build a new format in UTF-8
$newargv = array(); // unhandled args in unchanged encoding

If you use argument numbering, then format specifications with the same number get the same argument; this can save repeating the argument in the function call.

Just wanted to add that to get the remaining text from the string, you need to add the following as a variable in your scanf

Here’s a clean, working version of functions to allow using named arguments instead of numeric ones. ex: instead of sprintf(‘%1$s’, ‘Joe’);, we can use sprintf(‘%name$s’, array(‘name’ => ‘Joe’));. I’ve provided 2 different versions: the first uses the php-like syntax (ex: %name$s), while the second uses the python syntax (ex: %(name)s).

Источник

Php sprintf ведущие нули

Описание string sprintf ( string format [, mixed args] )

Каждый описатель прреобразований состоит из знака процента ( % ), за которым следует один или более дополнительных элементов (в том порядке, в котором они здесь перечислены):

Начиная с PHP 4.0.6 в строке формата поддерживается нумерация и изменение порядка параметров. Например:

Пример 1. Изменение порядка параметров

Этот код выведет «There are 5 monkeys in the tree». Теперь представьте, что строка формата содержится в отдельном файле, который потом будет переведен на другой язык, и мы переписываем ее в таком виде:

Пример 2. Изменение порядка параметров

Появляется проблема: порядок описателей преобразования не соответствует порядку аргументов. Мы не хотим менять код, и нам нужно указать, какому аргументу соответствует тот или иной описатель преобразования.

Пример 3. Изменение порядка параметров

Нумерация аргументов имеет еще одно применение: она позволят вывести один и тот же аргумент несколько раз без передачи функции дополнительных параметров.

Пример 4. Изменение порядка параметров

Примеры

Пример 5. sprintf() : заполнение нулями

Пример 6. sprintf() : форматирование денежных величин

Источник

Php sprintf ведущие нули

Результат выполнения данного примера:

Подробную документацию и примеры использования читайте в разделе декларация типов.

Объявления возвращаемых значений

В PHP 7 добавлена поддержка объявления возвращаемого типа. Аналогично как и объявления типов аргументов, объявление типа возвращаемого значения указывает, значение какого типа должна вернуть функция. Для объявления типа возвращаемого значения доступны все те же типы, что и для объявления типов аргументов.

Результат выполнения данного примера:

Полную документацию и примеры использования читайте в разделе про объявление возвращаемого типа.

Оператор объединения с null

Оператор spaceship (космический корабль)

Определение констант массивов с помощью define()

echo ANIMALS [ 1 ]; // выводит «cat»
?>

Анонимные классы

Результат выполнения данного примера:

Подробную документацию и примеры использования читайте в разделе про анонимные классы.

Синтаксис кодирования Unicode

Он принимает шестнадцатеричный код Unicode и записываем его в формате UTF-8 в двойных кавычках или формате heredoc. Любой корректный код будет принят. Ведущие нули по желанию.

Результат выполнения данного примера:

Closure::call()

Closure::call() является более производительным и коротким способом временного связывания области действия объекта с замыканием и его вызовом.

Результат выполнения данного примера:

unserialize() с фильтрацией

Эта функциональность обеспечивает более высокий уровень безопасности при десериализации объектов с непроверенными данными. Это позволяет предотвратить возможную инъекцию кода, позволяя разработчику использовать белый список классов для десериализации.

IntlChar

Новый класс IntlChar добавляет новую функциональность в ICU. Класс определяет несколько статических методов и констант для манипулирования символами Unicode.

Результат выполнения данного примера:

Для использования это класса необходимо установить модуль Intl.

Ожидания

Вместе тем, что старое API поддерживается, assert() теперь является языковой конструкцией, принимающей первым аргументом выражения, а не только строки ( string ) для оценки или логические значения ( bool ) для проверки.

class CustomError extends AssertionError <>

Результат выполнения данного примера:

Групповые объявления use

// До PHP 7
use some \namespace\ ClassA ;
use some \namespace\ ClassB ;
use some \namespace\ ClassC as C ;

use function some \namespace\ fn_a ;
use function some \namespace\ fn_b ;
use function some \namespace\ fn_c ;

use const some \namespace\ ConstA ;
use const some \namespace\ ConstB ;
use const some \namespace\ ConstC ;

Выражение return в генераторах

= (function() <
yield 1 ;
yield 2 ;

Результат выполнения данного примера:

Возможность явно получать окончательное значение генератора является очень полезной, так как позволяет клиентскому коду, использующему генератор, получать и обработать самое последнее значение генератора, после которого точно ничего больше не будет. Это сильно проще, чем вынуждать разработчика проверять, последнее ли значение вернулось и как-то по особенному его обрабатывать.

Делегация генератора

function gen ()
<
yield 1 ;
yield 2 ;
yield from gen2 ();
>

function gen2 ()
<
yield 3 ;
yield 4 ;
>

Результат выполнения данного примера:

Функция целочисленного деления intdiv()

Новая функция intdiv() производит целочисленное деление операндов и возвращает его результат.

Результат выполнения данного примера:

Опции сессий

Теперь session_start() принимает массив опций, которые переопределят конфигурационные директивы сессии установленные в php.ini.

К примеру, для установки session.cache_limiter равным private и немедленному закрытию сессии после чтения её данных:

preg_replace_callback_array()

Функции CSPRNG

Теперь функция list() всегда может распаковывать объекты, реализующие ArrayAccess

Источник

PHP: как добавить ведущие нули/ноль обивка плавать через sprintf()?

Как я могу добавить ведущие нули к значению с плавающей запятой?

1 ответ

У меня есть столбец varchar, который имеет вариации следующих данных: WKKT-FM, 2/21 WKKT-FM, 1/24-2/14 WKKT-FM, 3/14-3/21, 4/11-4/18 IKKT-FM, 12/29-1/12, 1/26-2/09, 6/01-6/15 И так далее. Мне нужно поместить ведущие нули перед днями и месяцами. Как вы можете видеть, некоторые из них уже имеют.

Короткий ответ: sprintf(‘%05.2f’, 1); даст желаемый результат 01.00

Объяснение

Это сообщение на форуме указало мне в правильном направлении: первое число не обозначает ни количество ведущих нулей, ни количество общих символов слева от десятичного разделителя, но общее количество символов в результирующей строке!

Какой-то код

Выход

Похожие вопросы:

Нужно добавить ведущие нули к значениям столбца (varchar) и обновить его в той же таблице. например: 431 как 000431, 5431 как 005431, 64531 как 064531, в основном мне нужно заменить нули в данных.

У меня есть следующий код: string textTransDate = String.Format(<0>—<1>— <2><3>:<4>, DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute); Я хочу добавить.

У меня есть столбец varchar, который имеет вариации следующих данных: WKKT-FM, 2/21 WKKT-FM, 1/24-2/14 WKKT-FM, 3/14-3/21, 4/11-4/18 IKKT-FM, 12/29-1/12, 1/26-2/09, 6/01-6/15 И так далее. Мне нужно.

У меня есть строка в базе данных в формате 01, 0064, 05, но когда я просматриваю в iReport ведущие нули не появляются, они появляются следующим образом 1, 64, 5. Как это исправить?

Я пытаюсь добавить тысячу разделителей к числу, используя PHP, и в то же время сохранить ведущие нули (это часть дизайна приложения, чтобы ведущие 0 оставались так, чтобы люди могли видеть, как.

Я видел несколько ответов, но они преобразовали целое число в строку и так далее. У меня есть NSString и я хочу добавить к нему ведущие нули. NSString *hexString = [NSString.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *