2014-06-20 12 views
5

Ich habe die folgende Zeile in meinem Code, die meine Ausgabe in 6 Zeichen mit führenden Nullen anzeigt.PHP Sprintf Space Padding

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

Ich möchte die führenden Nullen durch Leerzeichen ersetzen. Habe alle Beispiele ausprobiert, die durch das Durchsuchen dieser Seite und anderer gefunden wurden, und kann es nicht herausfinden.

Hier sind einige, die ich versucht habe.

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

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

Danke für jede Hilfe !!

+1

Was ist ein Beispiel für '$ phpPartHrsMls'? –

+0

Dies sollte funktionieren, wenn Sie in eine Datei oder stdout ausgeben. Im Browser - wie Niet the Dark Absolu richtigerweise erwähnt - haben Räume unterschiedliche Semantiken und Sie könnten besser mit einem '

' umgehen. – Fabian

+0

Seine Nummer Ausgabe - 300 – user2883088

Antwort

5

Im Browser werden Leerzeichen immer minimiert.

Versuchen:

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

Und wenn Sie damit zufrieden sind, an der CSS einen Blick white-space:pre-wrap - eine sehr nützliche Eigenschaft!

+0

Ich werde deinen Vorschlag versuchen ... danke! – user2883088

1

verwenden Sie %06d Bitte versuchen Sie eine größere Nummer.

Ihr Code kann soetwas wie unter Versuch:

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

und Sie &nbsp; für Platz auf Ihrem html verwenden können.

+0

Danke ... aber hat nicht funktioniert – user2883088

0

ändern Nullen führende Leerzeichen führende:

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

Dieses links mit Leerzeichen ausrichten:

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

Dies wird das Recht mit Leerzeichen ausrichten:

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

Wenn Sie möchte nur sechs Ziffern und andere zu löschen:

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

Eine weitere Sache, wird der Browser ignorieren im Allgemeinen die Räume, so ist es besser, die Ausgabe in <pre> Tag zu wickeln.