Nenhum produto encontrado nessa seleção.
printf e sprintf em PHP fazem praticamente a mesma coisa, criam uma string formatada dependendo de diretivas que são formadas por texto normal (sem o sinal de %).
Veja sua descrição no manual do PHP:
string sprintf ( string $formato [, mixed $args [, mixed $... ]] )
printf e sprintf em PHP
Ambas, sprintf e printf têm a mesma descrição e aceitam os mesmos argumentos, a única diferença entre ambas é que a função printf exibe valores na tela, sprintf salva o valor em uma variável.
Formato
O primeiro parâmetro aceito por sprintf e printf é o $formato, que é o valor que vai conter o texto e as diretivas. Por exemplo:
<?php // Uma string printf('%s', 'Uma string'); ?>
No trecho acima, tenho apenas uma diretiva, o %s, que é tratado e mostrado como uma string.
Veja as possibilidades de diretivas:
- %b – O argumento é tratado com inteiro e mostrado como binário;
- %c – O argumento é tratado como inteiro e mostrado como o caractere ASCII correspondente;
- %d – O argumento é tratado inteiro e mostrado como número decimal com sinal de positivo ou negativo.
- %e – O argumento é tratado como notação científica (Ex.: 1.2e+2). O especificador de precisão indica o número de dígitos depois do ponto decimal (desde o PHP 5.2.1).
- %u – O argumento é tratado com inteiro e mostrado como número decimal sem sinal.
- %f – O argumento é tratado como float e mostrado como número de ponto flutuante (do locale).
- %F – O argumento é tratado como float e mostrado como número de ponto flutuante (não usando o locale).
- %o – O argumento é tratado com inteiro e mostrado como um número octal.
- %s – O argumento é tratado e mostrado como uma string.
- %x – O argumento é tratado como inteiro e mostrado como número hexadecimal (com as letras minúsculas).
- %X – O argumento é tratado como inteiro e mostrado como número hexadecimal (com as letras maiúsculas).
Veja outro exemplo de uso de printf:
<?php // Agora $hora = array( 9, 14, 'AM' ); // Uma string $estou = 'escrevendo'; // Formata: São 9:14AM e estou escrevendo. printf('São %d:%d%s e estou %s.', $hora[0], $hora[1], $hora[2], $estou); ?>
Ou vários exemplos:
<?php $numero = 65; printf('%b <br>', $numero); // 1000001 printf('%c <br>', $numero); // A printf('%d <br>', $numero); // 65 printf('%e <br>', $numero); // 6.500000e+1 printf('%u <br>', $numero); // 65 printf('%f <br>', $numero); // 65.000000 printf('%F <br>', $numero); // 65.000000 printf('%o <br>', $numero); // 101 printf('%s <br>', $numero); // 65 printf('%x <br>', $numero); // 41 printf('%X <br>', $numero); // 41 ?>
Note que o <br> serve apenas para quebra de linha em HTML.
Formatos mais avançados
Você também pode indicar que a função adicione espaços para a direita ou para a esquerda no valor. Veja exemplos:
<?php // Um número $numero = 65; // Apenas uma tag HTML echo '<pre>'; // Adiciona 11 espaços para a direita printf("'%-11d'", $numero); // '65 ' // Adiciona 11 espaços para a esquerda printf("'%11d'", $numero); // ' 65' // Adiciona 11 espaços para a esquerda // e conta apenas um caractere para a string (s) printf("'%11.1s'", $numero); // ' 6' // Apenas o fechamento da tag HTML echo '</pre>'; ?>
Perceba que o sinal de – (menos) indica que os espaços serão adicionados para a direita, se você não especificar este sinal, os espaços serão adicionados para a esquerda. Veja também que você pode adicionar um ponto (.) e indicar a quantidade de caracteres a serem apresentados.
Mais exemplos
Veja mais exemplos:
<?php // Formata data: 20/04/1987 printf('%02d/%02d/%04d', 20, 04, 1987); // Formata dinheiro: 50.59 printf("%01.2f", 000050.59); ?>
Diferença entre printf e sprintf em PHP
A única diferente de printf e sprintf é que sprintf não vai exibir os valores, e sim salva-los em uma variável. Veja:
<?php // Crio uma variável com sprintf $variavel = sprintf('Tenho %d anos.', 27); // Só agora vou exibir seu valor echo $variavel; // Tenho 27 anos. ?>
Mais detalhes sobre printf e sprintf
Para maiores informações sobre printf e sprintf acesse:
Em caso de dúvidas, basta comentar.