Hans Pufal, enviou uma função javascript para o site electrictoolbox.com que preenche uma string ou número, com caracteres à esquerda, mantendo o sinal caso seja um número negativo.
function pad (n, len, padding){
var sign = '', s = n;
if (typeof n === 'number'){
sign = n < 0 ? '-' : '';
s = Math.abs (n).toString ();
}
if ((len -= s.length) > 0){
s = Array (len + 1).join (padding || '0') + s;
}
return sign + s;
}
Aqui o exemplo com a função em javascript:
Com PHP, seria mais fácil, pode ser usado as funções sprintf() ou printf(), a primeira para retornar uma string formatada e a outra para imprimir a string também formatada. Na função sprintf() no primeiro parâmentro você especifica como vai tratar o segundo parâmetro e sua formatação. Se você quiser preencher com zeros uma string, ela vai retornar apenas zeros.
// Usando sprintf()
echo sprintf('%020d',123);
// USANDO printf
$s = 'teste';
$t = 'meus testes';
printf("[%s]\n", $s); // string normal
printf("[%10s]\n", $s); // justifica à direita com espaços
printf("[%-10s]\n", $s); // justifica à esquerda com espaços
printf("[%010s]\n", $s); // preenche com zeros
printf("[%'#10s]\n", $s); // preenche utilizando um caracter '#'
printf("[%10.10s]\n", $t); // justifica à esquerda mas com corte no décimo caracter
Aqui, os exemplos para preencher com caracteres à esquerda com PHP.
[teste] [ teste] [teste ] [00000teste] [#####teste] [meus teste]