ГлавнаяОтзывы и пожеланияСтатьи
Функции по алфавиту:    a     b     c     d     e     f     g     h     i     j     k     l     m     n     o     p     q     r     s     t     u     v     w     x     y     z  

sprintf


(PHP 3, PHP 4)

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

Описание

string sprintf (string format [, mixed args])

Возвращает строку, созданную в соответствии со строкой форматирования format.

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

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

  1. Необязательный padding-спецификатор, который сообщает, какой символ будет использоваться для заполнения результатов до размера строки. Это может быть символ space/пробел или 0 (символ нуль). По умолчанию заполняется пробелами. Альтернативный заполнитель может быть специфицирован с помощью префикса - одинарной кавычки (`). См. примеры далее.

  2. Необязательный alignment-спецификатор, который сообщает, должен ли результат выравниваться влево или вправо (left-justified или right-justified). По умолчанию right-justified; символ - здесь делает left-justified.

  3. Необязательное число, width-спецификатор, который сообщает, сколько символов (минимум) должна дать эта конвертация.

  4. Необязательный precision-спецификатор, который сообщает, сколько десятеричных цифр должно выводиться для чисел с плавающей точкой. Эта опция не оказывает действия на другие типы, кроме float. (Для форматирования чисел используется также функция number_format().)

  5. type-спецификатор, который сообщает, как какой тип должны рассматриваться данные аргумента. Возможные типы:

    % - литеральный символ процентов. Аргументы не требуются.
    b - аргумент рассматривается как integer и представлен как двоичное число.
    c - аргумент рассматривается как integer и представлен как символ с этим ASCII-значением.
    d - аргумент рассматривается как integer и представлен как (знаковое) десятеричное число.
    u - аргумент рассматривается как integer и представлен как беззнаковое десятеричное число.
    f - аргумент рассматривается как float и представлен как число с плавающей точкой.
    o - аргумент рассматривается как integer и представлен как восьмеричное число.
    s - аргумент рассматривается и представляется как строка/string.
    x - аргумент рассматривается как integer и представлен как шестнадцатеричное число (с буквами в нижнем регистре).
    X - аргумент рассматривается как integer и представлен как шестнадцатеричное число (с буквами в верхнем регистре).

Как и в PHP версии 4.0.6, строка форматирования поддерживает нумерацию/обмен аргументов (numbering/swapping). Вот пример:

Пример 1. Обмен/swapping аргументов
$format = "There are %d monkeys in the %s";
printf($format,$num,$location);

Это выведет "There are 5 monkeys in the tree". Но представьте, что мы создаём строку форматирования в отдельном файле, что является обычным, поскольку мы хоти интернационализировать её, и мы переписываем:

Пример 2. Обмен аргументов
$format = "The %s contains %d monkeys";
printf($format,$num,$location);

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

Пример 3. Обмен аргументов
$format = "The %2$s contains %1$d monkeys";
printf($format,$num,$location);

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

Пример 4. Обмен аргументов
$format = "The %2$s contains %1$d monkeys.
           That`s a nice %2$s full of %1$d monkeys.";
printf($format, $num, $location);

См. также printf(), sscanf(), fscanf() и number_format().

Примеры

Пример 5. sprintf(): целые числа с заполнением нулями
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
Пример 6. sprintf(): форматирование валюты
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money will output "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted выдаст "123.10"



Другие функции на s:

sem_acquire
sem_release
serialize
sesam_affected_rows
sesam_commit
sesam_connect
sesam_diagnostic
sesam_execimm
sesam_fetch_array
sesam_fetch_result
sesam_num_fields
sesam_query
session_cache_expire
session_cache_limiter
session_decode
session_encode
session_get_cookie_params
session_id
session_is_registered
session_name
session_save_path
session_set_save_handler
session_start
session_unregister
session_write_close
setcookie
settype
set_file_buffer
set_time_limit
shmop_open
shmop_read
shmop_size
shm_attach
shm_detach
shm_get_var
shm_remove_var
show_source
similar_text
sinh
sleep
snmprealwalk
snmpwalkoid
snmp_set_quick_print
socket_accept
socket_bind
socket_close
socket_connect
socket_create_listen
socket_create_pair
socket_getsockname
socket_iovec_add
socket_iovec_set
socket_last_error
socket_listen
socket_read
socket_readv
socket_select
socket_send
socket_sendmsg
socket_sendto
socket_set_option
socket_shutdown
socket_strerror
socket_writev
sort
soundex
split
spliti
sql_regcase
sqrt
srand
sscanf
stat
strcspn
strftime
stripcslashes
strip_tags
stristr
strlen
strnatcasecmp
strnatcmp
strpos
strrpos
strspn
strstr
strtolower
strtotime
strtr
strval
str_repeat
substr
substr_replace
SWFAction
SWFBitmap->getHeight
SWFBitmap->getWidth
SWFbutton->addAction
SWFbutton->addShape
SWFbutton->setAction
SWFbutton->setOver
SWFbutton->setUp
swfbutton_keypress
SWFDisplayItem->addColor
SWFDisplayItem->move
SWFDisplayItem->moveTo
SWFDisplayItem->Rotate
SWFDisplayItem->rotateTo
SWFDisplayItem->scale
SWFDisplayItem->scaleTo
SWFDisplayItem->setDepth
SWFDisplayItem->setRatio
SWFDisplayItem->skewX
SWFDisplayItem->skewXTo
SWFDisplayItem->skewY
SWFFill->skewXTo
SWFFont
swffont->getwidth
SWFGradient->addEntry
SWFMorph
SWFMorph->getshape1
SWFMorph->getshape2
SWFMovie
SWFMovie->nextframe
SWFMovie->setbackground
SWFShape
SWFShape->drawLine
SWFShape->drawLineTo
SWFShape->movePenTo
SWFShape->setLine
SWFSprite
SWFSprite->nextframe
SWFSprite->setframes
SWFText->addString
SWFText->getWidth
SWFText->setFont
SWFTextField
SWFTextField->align
SWFTextField->setbounds
SWFTextField->setcolor
SWFTextField->setFont
SWFTextField->setHeight
SWFTextField->setindentation
SWFTextField->setLeftMargin
SWFTextField->setMargins
SWFTextField->setname
swf_actiongotoframe
swf_actionnextframe
swf_actionplay
swf_actionprevframe
swf_actionsettarget
swf_actiontogglequality
swf_actionwaitforframe
swf_addbuttonrecord
swf_addcolor
swf_definebitmap
swf_defineline
swf_definepoly
swf_definetext
swf_endbutton
swf_endsymbol
swf_fontslant
swf_getfontinfo
swf_labelframe
swf_modifyobject
swf_mulcolor
swf_nextid
swf_openfile
swf_ortho2
swf_perspective
swf_placeobject
swf_polarview
swf_popmatrix
swf_removeobject
swf_scale
swf_setfont
swf_setframe
swf_shapearc
swf_shapecurveto
swf_shapefillbitmaptile
swf_shapefilloff
swf_shapelineto
swf_shapemoveto
swf_startdoaction
swf_startshape
swf_startsymbol
swf_textwidth
swf_translate
swf_viewport
sybase_affected_rows
sybase_close
sybase_fetch_array
sybase_fetch_field
sybase_fetch_object
sybase_fetch_row
sybase_field_seek
sybase_min_error_severity
sybase_min_server_severity
sybase_num_fields
sybase_num_rows
sybase_query
symlink
syslog
system


EXPERTGS.ru описание функций php.