Advertisement
ph4x35ccb

Formatação de string avançada

Apr 1st, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.46 KB | None | 0 0
  1. <?php
  2.  
  3. echo "<hr>";
  4. $erro=[
  5.     'tipo'=>'Email',
  6.     'codigo'=>'01',
  7.     'descricao'=>'O remetente nao foi informado'
  8. ];
  9. echo "Tipo: ". $erro["tipo"]." Código: ". $erro["codigo"]. ". Descrição: ".$erro["descricao"];
  10. echo "<br><hr>";
  11. /*Usando a funçao sprintf()
  12. retorna uma string formatada
  13.  Ela por si só não imprime o
  14.  resultado na tela. Entretanto,
  15.  existe a função printf() que
  16.  não apenas formata, mas faz a
  17.  função de print (imprimir na tela):
  18. */
  19.  $usuario = [
  20.     'nome'=>'João',
  21.     'sobrenome'=>'Silva',
  22.     'idade'=>'65',
  23.     'email'=>'teste@teste'
  24.  ];
  25.  $str_formt=sprintf("Sr: %s  %s  tem a idade de %s anos email de contato %s",$usuario["nome"],$usuario["sobrenome"],$usuario["idade"],$usuario["email"]);
  26.  echo "Funçao sprintf<br>";
  27.  echo $str_formt."<hr>";
  28.  /*O segredo está nos especificadores
  29.  de formato do tipo "%s", que tratam
  30.  os argumentos como sendo strings.
  31. A função sprintf() retorna uma string
  32. formatada. Ela por si só não imprime o
  33. resultado na tela. Entretanto, existe a f
  34. unção printf() que não apenas formata,
  35. mas faz a função de print (imprimir na tela):*/
  36. echo "Funçao printf<br>";
  37. printf("Sr: %s %s tem a idade de %s anos email de contato %s",$usuario["nome"],$usuario["sobrenome"],$usuario["idade"],$usuario["email"]);
  38.  echo"<hr>";
  39.  /*Um erro comum é usar o símbolo de
  40.   percentagem (%) sem a intenção que
  41.   ele seja um especificador. para
  42.   solucionar este erro basta escṕar
  43.   cm mais um %*/
  44.   $user=[
  45.       'nome'=>'Pedro',
  46.       'sobrenome'=>"Aparecido",
  47.       'idade'=>'28',
  48.       'email'=>'pedro@teste.com'
  49.   ];
  50.   $formt = vsprintf("Nome: %s Sobre Nome: %s Idade: %s Email: %s .Perfil concluido: 50%%", $user);
  51.   echo $formt."<hr>";
  52.  
  53.  echo "<pre>
  54. Os tipos possíveis são:
  55.  
  56. % - Um caractere porcento. Não é requerido nenhum argumento.
  57. b - O argumento é tratado como um inteiro, e mostrado como um binário.
  58. c - O argumento é tratado como um inteiro, e mostrado como o caractere ASCII correspondente.
  59. d - O argumento é tratado como um inteiro, e mostrado como um número decimal com sinal.
  60. e - O argumento é tratado como notação científica (e.g. 1.2e+2). O especificador de precisão indica o número de dígitos depois do ponto decimal (PHP 5.2.1 ou maior).
  61. u - O argumento é tratado como um inteiro, e mostrado como um número decimal sem sinal.
  62. f - O argumento é tratado como um float, e mostrado como um número de ponto flutuante (do local configurado).
  63. F - O argumento é tratado como um float, e mostrado como um número de ponto flutuante (não usa as configurações do local informado).
  64. o - O argumento é tratado como um inteiro, e mostrado como um número octal.
  65. s - O argumento é tratado e mostrado como uma string.
  66. x - O argumento é tratado como um inteiro, e mostrado como um número hexadecimal (com as letras minúsculas).
  67. X - O argumento é tratado como um inteiro, e mostrado como um número hexadecimal (com as letras maiúsculas).*/</pre><hr>";
  68. $valor1=4295;
  69. $valor2=98.25;
  70. $valor3= -4395;
  71. $caractere = 67;//decimal 67 na tabela ansi equivale a letra C
  72.  
  73. printf('Representaçao binaria: %b <br>',$valor1);
  74. printf('Caractere 67 tabl ansi: %c <br>',$caractere);
  75. printf('Notaçao Cientifuica: %e <br>',$valor1);
  76. printf('Inteiro do valor Truncado: %d <br>',$valor2);
  77. printf('Força o valor inteiro a ter o sinal "+": %+d <br>',$valor1);
  78. printf('Forca o sinal "-": %-d <br>',$valor3);
  79. echo "<hr>";
  80. $num=20.88882;
  81. printf('$.1f',$num);
  82. echo "<hr>";
  83. $s='Alinhamento';
  84. printf("[%s]<br>",   $s);
  85. printf("[%'*15s]<br>",   $s);//alinhamneto a direita com espaço
  86. printf("[%'*-15s]<br>",   $s);//alianhamento a esquerda
  87. echo "<hr>";
  88. echo "Formatadores<br>";
  89. $mes=4;
  90. $dia=1;
  91. $ano=2019;
  92. //formata com zero a esquerda
  93. echo sprintf("Data: %02d/%02d/%04d",$mes,$dia,$ano);
  94. echo "<hr>";
  95. echo "Troca de string durante a execusao<hr>";
  96. $trostring='Sou Jovem e tenho %2$u anos. Sou bebe e tenho %1$u anos.';
  97. printf($trostring,2,25);
  98. //numero 1 atribui 1 numero com 1 casa numero 2 atribui valor com 2 casa
  99. echo "<hr>";
  100. /*Também tem a função sscanf(), que trabalha de forma análoga à sprintf(). Mas, ao invés de formatar uma saída, ela interpreta a entrada de acordo com as regras especificadas na string de formato e retorna um array com os dados interpretados.*/
  101. $dados = '123 456 789';//deliminador
  102. $formato = '%d %d %d';
  103. var_dump( sscanf($dados, $formato));
  104. echo "<hr>";
  105. $serial = 'SN/423355002';
  106. $formato = 'SN/%d';
  107.  
  108. var_dump( sscanf($serial, $formato) );
  109. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement