Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Função sprintf
  2. Função vsprintf
  3. Função sscanf
  4. Interpolação
  5. formatação data
  6. formatação moeda
  7. formatação numérica

A linguagem PHP fornece algumas funções para formatação de dados em strings e também para leitura de dados formatadas a partir de string ou vetores. Nesta parte do tutorial vamos estudar essas funções.

O tipo de dado String foi estudado em PHP Básico: Strings e o assunto vetor foi visto em PHP Básico: Vetor

Com a função sprintf, podemos criar uma string formatada contendo valores. Os caracteres de escape e identificadores de formatação também são aceitos. Esses identificadores foram vistos em PHP Básico: Saída de Dados.

Sintaxe
sprintf(string $format, mixed ...$values): string
Onde
$format: string contendo formatação
$values: lista de valores para formatação com base em $format
Retorno
String contendo $values formatados por $format
Exemplo 1
//main.php
<?php
  $str = "%d %s %x %.2f";
  $str = "O produto %d de nome \"%s\" com código \"%x\" custa R$%.2f";
  
  printf($str,10,"tênis",255,10.23);

?>
Saída
O produto 10 de nome "tênis" com código "ff" custa R$10.23

Com a função vsprintf, podemos criar uma string formatada contendo valores de um vetor. Os caracteres de escape e identificadores de formatação são aceitos.

Sintaxe
vprintf(string $format, array $values): int
Onde
$format: string contendo formatação
$values: vetor contendo valores para formatação com base em $format
Retorno
String contendo $values formatados por $format
Exemplo 2
//main.php
<?php
$valores =array(10,"tênis",255,10.234);
  $str = "O produto %d de nome \"%s\" com código \"%x\" custa R$%.2f";
  echo vprintf($str,$valores);
?>
Saída
O produto 10 de nome "tênis" com código "ff" custa R$10.23

Utilizando a função sscanf, podemos ler dados formatados contidos em uma string. Os formatadores foram vistos em PHP Básico: Saída de Dados.

Sintaxe
sscanf(string $string, string $format, mixed &...$vars): array|int|null
Onde
$string: string de entrada para leitura 
$vars: lista de variáveis para atribuição de valores lidos

$format: string contendo identificadores de formatação:
D : número decimal
i : número inteiro(integer)
n: número de caracteres processados
s : interrompe a leitura em qualquer caracteres de espaço
c : caracter
* : omite atribuição de valor lido
Retorno
Vetor contendo valores lidos de $string respeitando o formato $format se $vars omitido.

Se o número de identificadores for menor das variáveis informadas em $vars, elementos null serão retornados.

Exemplo 3
//main.php
<?php
 $preco;
  $produto;
  //        %s  %*s  %*2c%f
  $str = "Tênis custa R$10.99";
  sscanf($str,"%s %*s %*2c%f",$produto,$preco); //%*2c descarta 2 caracteres, %*s descarta palavra
  
  echo $produto,":",$preco,"\n";
  
  $array = sscanf($str,"%s %*s %*2c%f");
  var_dump($array);
?>
Saída
Tênis:10.99
array(2) {
  [0]=>
  string(6) "Tênis"
  [1]=>
  float(10.99)
}

Outra forma de formatação de dados em PHP é utilizando o conceito de interpolação de string que basicamente consiste em utilizar o próprio nome da uma variavel dentro de strings para exibição de dados.

Sintaxe
"$variavel"

"{$variavel}"
Onde
{}: placeholder
Exemplo 4
//main.php
<?php
  $preco=1.99;
  $produto = "PC";
  $interp1 = "Produto:\"$produto\" Preço:R\$$preco";
  echo $interp1;
  echo "\n";
  $nome = "Interpolação";
  $var = "string";
  echo "Uma {$var} que usa {$nome}";
?>
Saída
Produto:"PC" Preço:R$1.99
Uma string que usa Interpolação
  1. 22/08/2025 - revisão 3 - Ajustes: pontuais, sintaxes e targets de links
  2. 22/09/2024 - revisão 3 - Ajustes gramaticais pontuais e outros ajustes
  3. 03/09/2024 - revisão 2 - Correção em link de objetivo: utilizar interpolação
  4. 05/02/2024 - revisão 1 - correção em navegação e erros gramaticais
  5. 20/09/2023 - versão inicial