Quando executo o script abaixo, deveria preencher com espaços até completar 20 caracteres e o resultado seria a palavra Teste com espaços até preencher 20 caracteres, correto? Mas quando executo o resultado aparece apenas com 1 espaço. Deixei algo passar? (Coloquei uma barra no final do echo justamente para identificar se está adicionando os espaços, mas não está)
Você já tentou colocar algum caractere ao invés de espaço para verificar?
Você pode substituir seu código
$pad = str_pad($nome,20," ",STR_PAD_RIGHT);
por
$pad = str_pad($nome,20);
JuniorMaia
O terceiro elemento da função é a posição em que o espeço será adicionado, se você quer espaços após a palavra, utilize apenas:
str_pad($nome,20," ");
V
Vvilmerson
Já havia experimentado essas opções, mas, não sei porque, não funciona. E já tentei sim substituir por outro caractere. Com outro caractere funciona. Qual o mistério? rs
JuniorMaia
tenta utilizar chr(32) no lugar do espaço em branco.
V
Vvilmerson
Mesmo utilizando o chr(32) não funcionou. Não consigo entender o porque =/
amartinss
O que acontece é que por ser espaço em branco ele imprimi somente como um, porém se você usar o strlen() vai ver que ele está com os 20 caracteres. Segue o teste que eu fiz:
Teste 5
Teste 20
Teste2_ 7
Teste2_0000000000000 20
Espero ter ajudado… abs
V
Vvilmerson
Muito legal, amartinss! Eu não tinha feito estes testes. Mas como eu poderia transformar esse espaçamento em algo visual sem precisar utilizar o , por exemplo?