Escreva a string formatada em uma variável:
<?php$number = 9;$str = "Pequim";$txt = vsprintf("Existem %u milhões de bicicletas em %s.",array($number,$str));echo $txt;?>A função vsprintf() grava a string formatada em uma variável.
Ao contrário de sprintf(), os argumentos em vsprintf() estão em um array. Os elementos da matriz serão inseridos na string principal no sinal de porcentagem (%). Esta função é executada passo a passo. No primeiro sinal %, o primeiro elemento da matriz é inserido, no segundo sinal %, o segundo elemento da matriz é inserido e assim por diante.
Nota: Se houver mais símbolos % do que parâmetros arg, você deverá usar espaços reservados. O espaço reservado é inserido após o símbolo % e consiste em um número e "$". Veja o Exemplo 2.
Dica: Funções relacionadas: fprintf(), vfprintf(), printf(), sprintf() e vprintf()
vsprintf( formato,argarray )
parâmetro | descrever |
---|---|
formatar | Obrigatório. Especifica uma string e como formatar variáveis dentro dela. Valores de formato possíveis: %% - retorna um sinal de porcentagem % %b - número binário %c - o caractere correspondente ao valor ASCII %d - Número decimal com sinal (negativo, 0, positivo) %e - Use notação científica em letras minúsculas (por exemplo, 1.2e+2) %E - Use notação científica em maiúsculas (por exemplo, 1.2E+2) %u - Número decimal sem sinal (maior ou igual a 0) %f - número de ponto flutuante (configuração local) %F - número de ponto flutuante (configuração não nativa) %g - a versão mais curta de %e e %f %G - %E e %f mais curtos %o - número octal %s - sequência %x - Número hexadecimal (letras minúsculas) %X - número hexadecimal (letras maiúsculas) Valores de formato adicionais. Deve ser colocado entre % e uma letra (ex. %.2f): + (Adicione + ou - na frente de um número para definir o sinal do número. Por padrão, apenas números negativos são marcados e números positivos não são marcados) ' (Especifica o que usar como preenchimento, o padrão é espaços. Deve ser usado com um especificador de largura. Por exemplo: %'x20s (use "x" como preenchimento)) - (valor da variável de ajuste esquerdo) [0-9] (especifica a largura mínima do valor da variável) .[0-9] (especifica o número de casas decimais ou o comprimento máximo da string) Nota: Se vários valores de formato acima forem usados, eles deverão ser usados na ordem acima e não poderão ser interrompidos. |
Argarray | Obrigatório. Uma matriz com parâmetros que serão inseridos na string de formato em % símbolos. |
Valor de retorno: | Retorna um valor de array como uma string formatada. |
---|---|
Versão PHP: | 4.1.0+ |
Use o valor de formato %f:
<?php$num1 = 123;$num2 = 456;$txt = vsprintf("%f%f",array($num1,$num2));echo $txt;?>Use espaços reservados:
<?php$number = 123;$txt = vsprintf("Com 2 casas decimais: %1$.2f<br>Sem casas decimais: %1$u",array($number));echo $txt;?>Use sprintf() para demonstrar todos os valores de formato possíveis:
<?php$num1 = 123456789;$num2 = -123456789;$char = 50; // O caractere ASCII 50 é 2// Nota: O valor do formato "%%" retorna um sinal de porcentagem sprintf("%%b = % b",$num1)."<br>"; // Número binárioecho sprintf("%%c = %c",$char)."<br>"; // O caractere ASCIIecho sprintf("%%d = %d",$num1)."<br>"; // Número decimal assinadoecho sprintf("%% d = %d",$num2)."<br>"; // Número decimal assinadoecho sprintf("%%e = %e",$num1)."<br>"; // Notação científica (minúsculas)echo sprintf("%%E = %E",$num1)."<br>" // Notação científica (maiúsculas)echo sprintf("%%u = %u",$num1)."< br>"; // Número decimal sem sinal (positivo)echo sprintf("%%u = %u",$num2)."<br>"; // Número decimal sem sinal (negativo)echo sprintf("%%f = %f",$num1)."<br>"; // Número de ponto flutuante (consciente das configurações locais)echo sprintf("%%F = %F",$num1)."< br>"; // Número de ponto flutuante (sem reconhecimento de configuração local)echo sprintf("%%g = %g",$num1)."<br>"; // Menor de %e e %fecho sprintf("%%G = %G",$num1)."<br>"; // Menor de %E e %fecho sprintf("%%o = %o",$num1)."<br>" ; // Número octalecho sprintf("%%s = %s",$num1)."<br>" // Stringecho sprintf("%%x = %x",$num1)."<br>"; // Número hexadecimal (minúsculas)echo sprintf("%%X = %X",$num1)."<br>" // Número hexadecimal (maiúsculas)echo sprintf("%%+d = %+d", $num1)."<br>"; // Especificador de sinal (positivo)echo sprintf("%%+d = %+d",$num2)."<br>"; (negativo)?>Demonstração de especificadores de string:
<?php$str1 = "Olá";$str2 = "Olá mundo!";echo vsprintf("[%s]",array($str1))."<br>";echo vsprintf("[%8s] ",array($str1))."<br>";echo vsprintf("[%-8s]",array($str1))."<br>";echo vsprintf("[%08s]",array($str1))."<br>"; echo vsprintf("[%'*8s]",array($str1))."<br>";echo vsprintf( "[%8.8s]",array($str2))."<br>";