PHP.mk документација

vprintf

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.vprintf.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.vprintf.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
vprintf

Референца за `function.vprintf.php` со подобрена типографија и навигација.

function.vprintf.php

vprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

vprintfИзлез форматирана низа

= NULL

vprintf(string $format, array $values): int

Прикажи ги вредностите на низата како форматиран стринг според format (што е опишано во документацијата за sprintf()).

Врати форматиран стринг printf() Работи како

Параметри

format

Низата за форматирање се состои од нула или повеќе директиви: обични знаци (со исклучок на %) што се копираат директно во резултатот и спецификации за конверзија, секоја од кои резултира со добивање на сопствен параметар.

Спецификацијата за конверзија следи овој прототип: %[argnum$][flags][width][.precision]specifier.

но прифаќа низа од аргументи, наместо променлив број на аргументи.

Цел број проследен со знак долар $, за да се специфицира кој број аргумент да се третира во конверзијата.

Argnum

Знаменце = NULL
- Порамни лево во дадената ширина на полето; Десното порамнување е стандардно
+ Префикс позитивни броеви со знак плус +; Стандардно само негативните се префиксирани со негативен знак.
Flags Ја пополнува низата со празни места. Ова е стандардно.
0 Само лево ги пополнува броевите со нули. Со s спецификатори ова може да ги пополни и десно со нули.
'(простор) Го полни резултатот со карактерот (char).

Ширина

Или цел број што кажува колку знаци (минимум) треба да резултира оваа конверзија, или *. Ако * се користи, тогаш ширината се дава како дополнителна цел вредност што му претходи на онаа форматирана од спецификаторот.

Прецизност

Период . опционално проследено со цел број или *, чие значење зависи од спецификаторот:

  • За e, E, f and F спецификатори: ова е бројот на цифри што треба да се испечатат по децималната точка (по дифолт, ова е 6).
  • За g, G, h and H спецификатори: ова е максималниот број на значајни цифри што треба да се испечатат.
  • За s спецификатор: делува како точка на прекин, поставувајќи максимално ограничување на карактерите на низата.

Забелешка: Ако е специфициран периодот без експлицитна вредност за прецизност, се претпоставува 0. Ако * се користи, прецизноста се дава како дополнителна цел вредност што му претходи на онаа форматирана од спецификаторот.

Спецификатори
Спецификатор = NULL
% Буквален процентен знак. Не е потребен аргумент.
b Аргументот се третира како цел број и се претставува како бинарен број.
c Аргументот се третира како цел број и се претставува како карактер со таа ASCII.
d Аргументот се третира како цел број и се претставува како (потпишан) децимален број.
e Аргументот се третира како научна нотација (на пр. 1.2e+2).
E Како e спецификатор, но користи големи букви (на пр. 1.2E+2).
f Аргументот се третира како пловечки број и се прикажува како пловечки број (свесен за локалот).
F Аргументот се третира како пловечки број и се прикажува како пловечки број (не свесен за локалот).
g

Општ формат.

Нека P е еднакво на прецизноста ако е различно од нула, 6 ако прецизноста е изоставена или 1 ако прецизноста е нула. Потоа, ако конверзијата со стил E би имала експонент X:

Ако P > X ≥ −4, конверзијата е со стил f и прецизност P − (X + 1). Во спротивно, конверзијата е со стил e и прецизност P − 1.

G Како g спецификатор, но користи E and f.
h Како g спецификатор, но користи F. Достапно од PHP 8.0.0.
H Како g спецификатор, но користи E and F. Достапно од PHP 8.0.0.
o Аргументот се третира како цел број и се прикажува како октален број.
s Аргументот се третира и прикажува како стринг.
u Аргументот се третира како цел број и се прикажува како непотпишан децимален број.
x Аргументот се третира како цел број и се прикажува како хексадецимален број (со мали букви).
X Аргументот се третира како цел број и се прикажува како хексадецимален број (со големи букви).
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

На c спецификаторот за тип ги игнорира подлогата и ширината.

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Обидот за користење комбинација од спецификаторите за стринг и ширина со множества знаци што бараат повеќе од еден бајт по знак може да резултира со неочекувани резултати.

Променливите ќе бидат претворени во соодветен тип за спецификаторот:

Ракување со типови
Тип Спецификатори
string s
int d, u, c, o, x, X, b
float e, E, f, F, g, G, h, H
values

Вратени вредности

Враќа должина на излезниот стринг.

Errors/Exceptions

Од PHP 8.0.0, а ValueError се фрла ако бројот на аргументи е нула. Пред PHP 8.0.0, а E_WARNING беше емитирано наместо тоа.

Од PHP 8.0.0, а ValueError се фрла ако [width] е помало од нула или поголемо од PHP_INT_MAX. Пред PHP 8.0.0, а E_WARNING беше емитирано наместо тоа.

Од PHP 8.0.0, а ValueError се фрла ако [precision] е помало од нула или поголемо од PHP_INT_MAX. Пред PHP 8.0.0, а E_WARNING беше емитирано наместо тоа.

Од PHP 8.0.0, а ValueError се фрла кога се даваат помалку аргументи отколку што е потребно. Пред PHP 8.0.0, false беше вратено и а E_WARNING емитирано наместо тоа.

Дневник на промени

Верзија = NULL
8.0.0 Оваа функција повеќе не враќа false при неуспех.
8.0.0 Фрли а ValueError ако бројот на аргументи е нула; претходно оваа функција емитираше а E_WARNING instead.
8.0.0 Фрли а ValueError if [width] е помало од нула или поголемо од PHP_INT_MAX; претходно оваа функција емитираше а E_WARNING instead.
8.0.0 Фрли а ValueError if [precision] е помало од нула или поголемо од PHP_INT_MAX; претходно оваа функција емитираше а E_WARNING instead.
8.0.0 Фрли а ValueError кога се даваат помалку аргументи отколку што е потребно; претходно оваа функција емитираше а E_WARNING instead.

Примери

Пример #1 vprintf()Врати вредности од низата како форматиран стринг според

<?php
vprintf
("%04d-%02d-%02d", explode('-', '1988-8-1'));
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

1988-08-01

Види Исто така

  • printf() Излез на стринг
  • sprintf() - Врати форматирана низа
  • fprintf() - Запиши форматирана низа во поток
  • vsprintf() - Врати форматирана низа
  • vfprintf() - Запиши форматирана низа во поток
  • sscanf() - Парсирај влез од низа според формат
  • fscanf() - Парсира влез од датотека според формат
  • number_format() - Заокружи дропки надолу
  • date() - Форматирај Unix временски печат

Белешки од корисници 8 белешки

steve на stevelockwood dot net
пред 11 години
If, instead of an array, you pass an object PHP will automatically cast the object as an array so you can use it directly in vprintf.
<?php
 $object = new stdClass();
 $object->Property1 = 'Value 1';
 $object->Property2 = 'Value 2';
vprintf('%-20s %-20s', $object);

/* will output
 Value 1              Value 2             
*/
?>
phpcoder на gmail dot com
пред 6 години
Using the ... operator, vprintf($format, $array) is basically just printf($format, ...$array).
tehjosh на gamingg dot net
пред 18 години
To toolofthesystem at gmail dot com:

You don't need to use output buffering with vprintf() because you can use vsprintf(), which has the same functionality as vprintf(), except that it returns the resulting string instead of outputting it.
земено од &#34;Php Phrasebook&#34;
пред 17 години
<?php
$string = 'The site runs on PHP '.phpversion();
preg_match('/php ((\d)\.\d\.\d+)/i',$string,$matches);
print_r($matches);
vprintf('Match: %s<br /> Version %s; Major:%d.',$matches);
?>

output:
Array ( [0] => PHP 5.2.5 [1] => 5.2.5 [2] => 5 ) 
Match: PHP 5.2.5 Version 5.2.5; Major:5.

For preg_match:

If matches  is provided, then it is filled with the results of search. $matches[0] will contain the text that matched the full pattern, $matches[1]  will have the text that matched the first captured parenthesized subpattern, and so on.
Крис
пред 13 години
Another way to display arrays is use an array_walk(). This can be useful inline echo/print where a foreach wouldn't work, e.g.

<?php
echo "These errors: ", (unset)array_walk($msgs, function($a) { echo "<p>$a</p>"; } ), "must be corrected.";
?>
toolofthesystem на gmail dot com
пред 18 години
This function comes useful sometimes when trying to list information returned from MySQL:

function print_sql($query,$printf){
    $sql_sql = mysql_query($query);
    while($sql = mysql_fetch_row($sql_sql)){
        vprintf($printf,$sql);
    }
}

Unfortunately, this seems to sneak its way past output buffering when I tried creating an argument to allow it to be contained in a returned string... either that or I didn't do it right.
caleb на tekhawk dot com
19 години пред
i know that you can use %1$s or %3$s to select the first or third string but how can you or can you use array names to select it

something like %'user'$s $'email'$s

i tend to add things to my databases over time and this could save loads of recoding
badcop666 на hotmail dot com
пред 18 години
For blocks of text, sprintf() is slow according to my tests. 

Also, having the mapping between place-holders and the list of actual variables or datastructures often makes this code difficult to read. But the printf() family are widely supported and have a huge range of nice features. Performance is a cold mistress though!

From an ease-of-reading and maintenance, debugging point of view, I much prefer HEREDOC and "...{$variable}..." methods.

For a block of HTML markup with place holders, the fastest by far was:-

?>
<div> markup etc<?= $variable ?>more markup
<?

My tests comprised 20 runs of a loop of 1 million iterations with output buffering, ditching the buffer on each loop.

The timings ranged from average 2.1msec/million repetitions for the <?= $var ?> method up to 7.6msec/million using printf().

I'll try some benchmarking tools too, since I just wrote this myself and it could be introducing bias, but they've run on dev servers with low load.

Hopefully interesting.
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.