2014-06-20 13 views
5

Tôi có dòng sau trong mã của tôi hiển thị đầu ra của tôi trong 6 ký tự có số 0 đứng đầu.PHP sprintf Space Padding

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

Tôi muốn thay thế các số 0 ở đầu bằng dấu cách. Đã thử tất cả các ví dụ được tìm thấy bằng cách tìm kiếm trang web này và những trang khác và không thể tìm ra nó.

Dưới đây là một số tôi đã thử.

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

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

Cảm ơn bạn đã trợ giúp !!

+1

Ví dụ về '$ phpPartHrsMls' là gì? –

+0

Điều này sẽ hoạt động nếu bạn xuất ra một tập tin hoặc thiết bị xuất chuẩn. Trong trình duyệt - như Niet the Dark Absol đã đề cập chính xác - không gian có ngữ nghĩa khác nhau và bạn có thể sử dụng '

' tốt hơn. – Fabian

+0

Đầu ra số của nó - 300 – user2883088

Trả lời

5

Trong trình duyệt, không gian sẽ luôn được thu gọn.

Hãy thử:

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

Và một khi bạn đã hài lòng với điều đó, hãy nhìn vào CSS white-space:pre-wrap - một tài sản rất hữu ích!

+0

Tôi sẽ cố gắng gợi ý của bạn ... cảm ơn bạn! – user2883088

1

bạn sử dụng %06d vui lòng thử một số lớn hơn.

mã của bạn có thể một số điều như dưới đây thử:

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

và bạn có thể sử dụng &nbsp; cho không gian trên html của bạn.

+0

Cảm ơn ... nhưng không hoạt động – user2883088

0

Thay đổi zero dẫn đến không gian hàng đầu:

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

này sẽ sắp xếp các trái với không gian:

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

này sẽ align đúng với không gian:

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

Nếu bạn chỉ muốn in sáu chữ số và một số khác cần xóa:

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

Một điều nữa, trình duyệt nói chung sẽ bỏ qua khoảng trống, vì vậy tốt hơn nên bọc đầu ra của bạn trong thẻ <pre>.