2014-06-20 16 views
5

Ho la seguente riga nel mio codice che mostra il mio output in 6 caratteri con zero iniziali.PHP sprintf Space Padding

$formatted_value = sprintf("%06d", $phpPartHrsMls); 

Voglio sostituire gli zeri iniziali con spazi. Ho provato tutti gli esempi trovati cercando questo sito e altri e non riesco a capirlo.

Ecco alcuni che ho provato.

$formatted_value = sprintf("%6s", $phpPartHrsMls); 

$formatted_value = printf("[%6s]\n", $phpPartHrsMls); // right-justification with spaces 

Grazie per qualsiasi aiuto !!

+1

Che cosa è un esempio di '$ phpPartHrsMls'? –

+0

Questo dovrebbe funzionare se si esegue l'output su un file o stdout. Nel browser, come correttamente menzionato da Niet the Dark Absol, gli spazi hanno una semantica diversa e potrebbe essere meglio usare un '

'. – Fabian

+0

Il suo numero di uscita - 300 – user2883088

risposta

5

Nel browser, gli spazi verranno sempre compressi.

Prova:

<pre><?php echo $formatted_value; ?></pre> 

E una volta che siete soddisfatti che, date un'occhiata al CSS white-space:pre-wrap - una proprietà molto utile!

+0

Proverò il tuo suggerimento ... grazie! – user2883088

1

si utilizza %06d si prega di provare un numero maggiore.

il codice può qualche cosa come di seguito prova:

printf('%20.2f', $phpPartHrsMls); 

ed è possibile utilizzare &nbsp; per lo spazio sul vostro html.

+0

Grazie ... ma non ha funzionato – user2883088

0

Cambiare porta zeri per gli spazi iniziali:

$formatted_value = sprintf("%' 6s", $phpPartHrsMls); 
1

Questo allineerà sinistra con spazi:

$formatted_value = sprintf("%6s", $phpPartHrsMls); 
echo "<pre>" . $formatted_value . "</pre>"; 

Ciò si allinea a destra con spazi:

$formatted_value = sprintf("%-6s", $phpPartHrsMls); 
echo "<pre>" . $formatted_value . "</pre>"; 

Se desidera stampare solo sei cifre e altre da rimuovere:

$formatted_value = sprintf("%-6.6s", $phpPartHrsMls); 
echo "<pre>" . $formatted_value . "</pre>"; 

Un'ultima cosa, il browser ignorerà generalmente gli spazi, quindi è meglio avvolgere l'output nel tag <pre>.