(PHP 5, PHP 7, PHP 8)
vfprintf — Write a formatted string to a stream
   Write a string produced according to format to the
   stream resource specified by stream.
  
Operates as fprintf() but accepts an array of arguments, rather than a variable number of arguments.
stream
format
   Рядок формату складається з нуля або більше директив: звичайних символів
   (крім %), які відображаються в результаті без змін, та
   специфікаторів перетворення, для кожного з яких
   задається свій параметр.
  
   Специфікатор перетворення відповідає прототипу:
   %[argnum$][flags][width][.precision]specifier.
  
    Ціле число, слідом за ним — знак долара $. Вказує
    порядковий номер параметра для перетворення.
   
| Позначення | Опис | 
|---|---|
- | 
       Вирівнює по лівому краю в межах заданої ширини. Праве вирівнювання виконується автоматично. | 
+ | 
       
        Дописує до додатнього числа знак +. Знак мінуса до
        від'ємного числа дописується автоматично.
        | 
      
  (пропуск) | 
       Доповнює результат пропусками. Також виконується автоматично. | 
0 | 
       
        Доповнює число нулями ліворуч. Разом зі специфікатором
        s доповнює число нулями також праворуч.
        | 
      
' (символ) | 
       Доповнює рядок символом (символ). | 
    Може бути цілим числом, що вказує найменшу кількість символів в значенні
    після перетворення, або знак *. Якщо використано
    знак *, то ширина вказується як додаткове ціле число,
    що передує значенню, відформатованому специфікатором.
   
    Крапка ., за якою (необов'язково) слідує ціле число
    чи знак *, значення якого залежить від специфікатора:
    
e, E,
       f і F — це кількість знаків, що
       будуть надруковані після десяткового розділювача (початково: 6).
      
     g, G,
       h і H — найбільша допустима
       кількість значущих цифр, що будуть надруковані.
      
     s — діє як точка відсікання,
       встановлюючи максимальну кількість символів у рядку.
      
     Зауваження: Якщо крапку вказано без зазначення точності, тоді точністю вважатиметься 0. Якщо використано знак
*, то точність вказується як додаткове ціле число, що передує значенню, відформатованому специфікатором.
| Назва | Опис | 
|---|---|
% | 
       Буквальний знак відсотка. Ніяких параметрів не потрібно. | 
b | 
       Параметр розглядається як ціле число і відображається як двійкове число. | 
c | 
       Параметр розглядається як ціле число і відображається як символ з таким кодом ASCII. | 
d | 
       Параметр розглядається як ціле число і відображається як знакове десяткове число. | 
e | 
       Параметр розглядається як експоненційний запис (напр. 1.2e+2). | 
E | 
       
        Схожий до специфікатора e, але використовує знак
        експоненти з великої букви (напр. 1.2E+2).
        | 
      
f | 
       Параметр розглядається і відображається як десятковий дріб (з урахуванням локалі). | 
F | 
       Параметр розглядається і відображається як десятковий дріб (БЕЗ урахування локалі). | 
g | 
       
         Загальний формат. 
         Нехай  Якщо P > X ≥ −4, перетворення буде в стилі "f" та з точністю P − (X + 1). Інакше, перетворення буде в стилі "e" та з точністю P − 1.  | 
      
G | 
       
        Схожий до специфікатора g, але використовує
        E та f.
        | 
      
h | 
       
        Схожий до специфікатора g, але використовує
        F. Доступний, починаючи з PHP 8.0.0.
        | 
      
H | 
       
        Схожий до специфікатора g, але використовує
        E та F. Доступний, починаючи з
        PHP 8.0.0.
        | 
      
o | 
       Параметр розглядається як ціле число і відображається як вісімкове число. | 
s | 
       Параметр розглядається і відображається як рядок. | 
u | 
       Параметр розглядається як ціле число і відображається як беззнакове десяткове число. | 
x | 
       Параметр розглядається як ціле число і відображається як шіснадцяткове число (з малими буквами). | 
X | 
       Параметр розглядається як ціле число і відображається як шіснадцяткове число (з великими буквами). | 
    Специфікатор "c" ігнорує заповнення та ширину.
   
Спроба використати разом рядковий специфікатор та специфікатор ширини з символами, що займають більше одного байта, може призвести до неочікуваного результату.
Змінні будуть приведені до відповідного типу для специфікатора:
| Тип | Специфікатор | 
|---|---|
| string | s | 
      
| int | 
        d,
        u,
        c,
        o,
        x,
        X,
        b
        | 
      
| float | 
        e,
        E,
        f,
        F,
        g,
        G,
        h,
        H
        | 
      
values
Returns the length of the outputted string.
   Починаючи з PHP 8.0.0, якщо не задано жодного параметра, то викидається
   ValueError. Раніше виводилось повідомлення
   E_WARNING.
  
   Починаючи з PHP 8.0.0, якщо значення [width] менше за нуль
   або більше за PHP_INT_MAX, то викидається
   ValueError. Раніше виводилось повідомлення
   E_WARNING.
  
   Починаючи з PHP 8.0.0, якщо значення [precision] менше за
   нуль або більше за PHP_INT_MAX, то викидається
   ValueError. Раніше виводилось повідомлення
   E_WARNING.
  
   Починаючи з PHP 8.0.0, якщо якщо не задано обов'язкові параметри, то
   викидається ValueError. Раніше функція повертала
   false, а також виводилося повідомлення E_WARNING.
  
| Версія | Опис | 
|---|---|
| 8.0.0 | 
       Ця функція більше не повертає false у разі помилки.
       | 
     
| 8.0.0 | 
       Викидає ValueError, якщо не задано жодного
       параметра. Раніше ця функція виводила E_WARNING.
       | 
     
| 8.0.0 | 
       Викидає ValueError, якщо значення
       [width] менше за нуль або більше за
       PHP_INT_MAX. Раніше ця функція виводила
       E_WARNING.
       | 
     
| 8.0.0 | 
       Викидає ValueError, якщо значення
       [precision] менше за нуль або більше за
       PHP_INT_MAX. Раніше ця функція виводила
       E_WARNING.
       | 
     
| 8.0.0 | 
       Викидає ValueError, якщо не задано
       обов'язкові параметри. Раніше ця функція виводила
       E_WARNING.
       | 
     
Приклад #1 vfprintf(): zero-padded integers
<?php
if (!($fp = fopen('date.txt', 'w')))
    return;
$year = 2025;
$month = 5;
$day = 6;
vfprintf($fp, "%04d-%02d-%02d", array($year, $month, $day));
// will write the formatted ISO date to date.txt
?>