2014-06-20 1 views
5

필자의 코드에서 출력을 6 글자 앞에 0으로 표시하는 다음 줄이 있습니다.PHP sprintf 스페이스 패딩

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

앞의 0을 공백으로 바꾸고 싶습니다. 이 사이트 및 다른 사이트를 검색하여 찾은 모든 예를 시도했지만 알아낼 수는 없습니다.

여기 제가 시도한 것들이 있습니다.

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

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

어떤 도움을 주셔서 감사합니다 !!

+1

'$ phpPartHrsMls'의 예는 무엇입니까? –

+0

파일 또는 표준 출력으로 출력하는 경우에 작동합니다. 브라우저에서 Niet the Dark Absol이 정확하게 언급했듯이 공백에는 다른 의미가 있으며 '

'을 사용하는 것이 더 나을 것입니다. – Fabian

+0

번호 출력 - 300 – user2883088

답변

5

브라우저에서 공백은 항상 축소됩니다.

시도 :

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

그리고 당신이에 만족하면, CSS white-space:pre-wrap 한 번 봐 걸릴 - 매우 유용한 속성을!

+0

나는 당신의 제안을 시도 할 것이다 ... 고마워! – user2883088

1

을 사용하면 %06d 큰 번호로 시도해보십시오.

코드 할 수있는 시도는 다음과 같은 몇 가지 일 :

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

당신이 당신의 HTML에 공간을 &nbsp;을 사용할 수 있습니다.

+0

감사 ...하지만 작동하지 않았다. – user2883088

0

선행 공백에 제로를 선도 변경 :

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

당신 경우 :

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

이 공백 권리를 정렬됩니다 :

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

이 공간 왼쪽 정렬됩니다 6 자릿수 만 인쇄하고 나머지는 제거 :

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

브라우저는 일반적으로 공백을 무시하므로 출력을 <pre> 태그로 감싸는 것이 좋습니다.