Função sprintf() do PHP

Exemplo

Substitua o símbolo de porcentagem (%) por uma variável passada como parâmetro:

<?php
$number = 2;
$str = "Shanghai";
$txt = sprintf("Existem 쥕hões de carros em %s.", $number, $str);
echo $txt;
?>

Executar Exemplo

Definição e uso

A função sprintf() escreve uma string formatada na variável.

arg1,arg2,++ Os parâmetros serão inseridos no sinal de porcentagem (%) da string principal. A função é executada gradualmente. No primeiro símbolo %, insira arg1, insira no segundo símbolo % arg2, conforme necessário.

Observação:Se o símbolo % for maior do que arg Se houver parâmetros, você deve usar placeholders. Os placeholders estão após o símbolo %, compostos por números e "\$". Veja o exemplo 2.

Dica:Funções relacionadas: printf(), vprintf(), vsprintf(), fprintf() e vfprintf()

Sintaxe

sprintf(format,arg1,arg2,arg++)
Parâmetro Descrição
format

Obrigatório. Determina a string e como formatar as variáveis dentro dela.

Valores de formato possíveis:

  • %% - Retorna um sinal de porcentagem %
  • %b - Número binário
  • %c - Caractere correspondente ao valor ASCII
  • %d - Número decimal com sinal (número negativo, 0, número positivo)
  • %e - Usa a contagem científica em minúsculas (por exemplo 1.2e+2)
  • %E - Usa a contagem científica em maiúsculas (por exemplo 1.2E+2)
  • 蒧úmero decimal sem sinal (maior ou igual a 0)
  • %f - Número de ponto flutuante (configuração local)
  • %F - Número de ponto flutuante (sem configuração local)
  • %g - %e e %f mais curtos
  • %G - %E e %f mais curtos
  • %o - Número octal
  • %s - String
  • %x - Número hexadecimal (letras minúsculas)
  • %X - Número hexadecimal (letras maiúsculas)

Valores de formato adicionais. Deve ser colocado entre % e a letra (por exemplo %.2f):

  • + (adiciona + ou - na frente do número para definir a sinalidade do número. Padrão é que apenas números negativos sejam marcados, números positivos não são marcados)
  • ' (define o que será usado como preenchimento, o padrão é espaço. Deve ser usado juntamente com o especificador de largura. Por exemplo: '%'x20s (usando "x" como preenchimento))
  • - (alinhamento à esquerda do valor da variável)
  • [0-9] (define a largura mínima do valor da variável)
  • .[0-9] (define o número de casas decimais ou o comprimento máximo da string)

Observação:Se forem usados vários valores de formato acima, eles devem ser usados na ordem acima.

arg1 Obrigatório. Determina o que será inserido format O parâmetro localizado no primeiro símbolo % na string.
arg2 Opcional. Determina o que será inserido format O parâmetro localizado no segundo símbolo % na string.
arg++ Opcional. Determina o que será inserido format Os parâmetros localizados no terceiro e quarto símbolos % na string.

Detalhes técnicos

Retorno: Retorna a string formatada.
Versão do PHP: 4+

Mais exemplos

Exemplo 1

Uso do valor de formatação %%f:

<?php
$number = 123;
$txt = sprintf("%f",$number);
echo $txt;
?>

Executar Exemplo

Exemplo 2

Uso de placeholders:

<?php
$number = 123;
$txt = sprintf("Com duas casas decimais:%1$.2f
<br>Sem decimal: %1$u,$number);
echo $txt;
?>

Executar Exemplo

Exemplo 3

Demostração de todos os possíveis valores de formatação:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // O caractere ASCII 50 é 2
// Comentário: O valor de formato "%%" retorna o símbolo de porcentagem
echo sprintf("%%b = %b",$num1)."<br>"; // Número binário
echo sprintf("%%c = %c",$char)."<br>"; // Caractere ASCII
echo sprintf("%%d = %d",$num1)."<br>"; // Número decimal com sinal
echo sprintf("%%d = %d",$num2)."<br>"; // Número decimal com sinal
echo sprintf("%%e = %e",$num1)."<br>"; // Notação científica (em minúsculo)
echo sprintf("%%E = %E",$num1)."<br>"; // Notação científica (em maiúsculo)
echo sprintf("%鑾u",$num1)."<br>"; // Número decimal sem sinal (positivo)
echo sprintf("%鑾u",$num2)."<br>"; // Número decimal sem sinal (negativo)
echo sprintf("%%f = %f",$num1)."<br>"; // Número de ponto flutuante (considerando a configuração regional)
echo sprintf("%%F = %F",$num1)."<br>"; // Número de ponto flutuante (não considerando a configuração regional)
echo sprintf("%%g = %g",$num1)."<br>"; // Curto em relação a %%e e %%f
echo sprintf("%%G = %G",$num1)."<br>"; // Curto em relação a %%E e %%f
echo sprintf("%%o = %o",$num1)."<br>"; // Número octal
echo sprintf("%%s = %s",$num1)."<br>"; // String
echo sprintf("%%x = %x",$num1)."<br>"; // Número hexadecimal (minúsculo)
echo sprintf("%%X = %X",$num1)."<br>"; // Número hexadecimal (maiúsculo)
echo sprintf("%%+d = %+d",$num1)."<br>"; // Símbolo de sinal (positivo)
echo sprintf("%%+d = %+d",$num2)."<br>"; // Símbolo de sinal (negativo)
?>

Executar Exemplo

Exemplo 4

Demonstração de Desenhador de String:

<?php
$str1 = "Hello";
$str2 = "Hello world!";
echo sprintf("[%s]",$str1)."<br>";
echo sprintf("[%8s]",$str1)."<br>";
echo sprintf("[%-8s]",$str1)."<br>";
echo sprintf("[%08s]",$str1)."<br>";
echo sprintf("[%'*8s]",$str1)."<br>";
echo sprintf("[%8.8s]",$str2)."<br>";
?>

Executar Exemplo