sprintf(PHP 3, PHP 4) sprintf - возвращает отформатированную строку. Описаниеstring sprintf (string format [, mixed args]) Возвращает строку, созданную в соответствии со строкой форматирования format. Строка форматирования состоит из 0 или более директив: обычных символов (исключая %), которые копируются прямо в результат, и спецификаций конвертации, каждая из которых приводит к извлечению её собственного параметра. Это применяется к sprintf() и к printf(). Каждая спецификация конвертации состоит из знака процентов (%) с последующим одним или более из следующих элементов, в данном порядке:
Как и в PHP версии 4.0.6, строка форматирования поддерживает нумерацию/обмен аргументов (numbering/swapping). Вот пример:
Это выведет "There are 5 monkeys in the tree". Но представьте, что мы создаём строку форматирования в отдельном файле, что является обычным, поскольку мы хоти интернационализировать её, и мы переписываем:
Вот мы и получили проблему. Порядок заглушек в строке формата не совпадает с порядком аргументов в коде. Мы хотели бы оставить код без изменений и просто указать в строке формата, к каким аргументам относятся заглушки строки формата. Теперь запишем строку формата так:
Теперь появилось преимущество: вы можете повторять заглушки без добавления аргументов в коде. Например:
См. также printf(), sscanf(), fscanf() и number_format(). Примеры
|
||||||||||||||||||||||
|
||||||||||||||||||||||
Однократные субпатэрны не являются захватывающими субпатэрнами. Простые случаи, вроде вышеприведённого примера, можно представить как максималистское построение, которое поглощает всё, что может. Так, в то время как \d+ и \d+? подготовлены так, чтобы уточнять число цифр для совпадения с ними, чтобы совпала остальная часть патэрна, (?>\d+) может совпадать только с полной последовательностью цифр.
Эта конструкция, разумеется, может содержать произвольно усложнённые субпатэрны и может вкладываться.
Однократные субпатэрны можно использовать в сочетании с утверждениями назад
для специфицирования эффективного совпадения в конце строки-субъекта. Рассмотрим
такой простой патэрн:
abcd$
применённый к длинной строке, с которой он не совпадает. Поскольку совпадение
выполняется слева направо, PCRE будет искать каждую "a" в субъекте, а затем
посмотрит, что из последующего совпадает с остатком патэрна. Если патэрн специфицирован
так:
^.*abcd$
| |