我學習有關的printf,sprintf和我不明白的幾個點,如果能有一個人,請幫助我理解茨艾倫點,PHP,printf的,sprintf函數,在<a href="http://php.net/manual/en/function.sprintf.php" rel="nofollow">PHP Manual</a>
在此鏈接:
有解釋編號從一到六:
我不明白的是:第一和第二(1(符號說明符),2(填充說明符)),如果有人可以幫助我的例子,我會非常感謝。
我學習有關的printf,sprintf和我不明白的幾個點,如果能有一個人,請幫助我理解茨艾倫點,PHP,printf的,sprintf函數,在<a href="http://php.net/manual/en/function.sprintf.php" rel="nofollow">PHP Manual</a>
在此鏈接:
有解釋編號從一到六:
我不明白的是:第一和第二(1(符號說明符),2(填充說明符)),如果有人可以幫助我的例子,我會非常感謝。
的標誌符強制標誌,即使是積極的。所以,如果你有
$x = 10;
$y = -10;
printf("%+d", $x);
printf("%+d", $y);
您將獲得:
+10
-10
的填充符加左填充,使輸出始終以空格定數,它允許你對齊一疊數字與合計有用的時候生成報表等
$x = 1;
$y = 10;
$z = 100;
printf("%3d\n", $x);
printf("%3d\n", $y);
printf("%3d\n", $z);
您將獲得:
1
10
100
如果你前面加上零填充符,字符串將補零而不是空格填充:
$x = 1;
$y = 10;
$z = 100;
printf("%03d\n", $x);
printf("%03d\n", $y);
printf("%03d\n", $z);
給出:
001
010
100
如果填充參數爲空格,瀏覽器將不顯示填充。僅當某些字符作爲參數 – rancho
給出時纔會顯示填充當然。這是用於文本輸出,而不是HTML。如果您需要HTML,請使用CSS進行對齊。或者用'PRE'標籤包裝。 –
的標誌符:放置一個加號( +)強制使負號和正號可見(只有負值是默認指定的)。
$n = 1;
$format = 'With sign %+d without %d';
printf($format, $n, $n);
打印:
隨着符號1無1
的填充符說什麼字符將被用於襯墊的結果來指定的長度。該字符的前綴爲單引號(')。例如,要墊長度3與字符 'a':
$n = 1;
$format = "Padded with 'a' %'a3d"; printf($format, $n, $n);
printf($format, $n, $n);
打印:
軟墊與 'A' AA1
1.Sign說明符:
默認情況下,瀏覽器僅在負數前面顯示-
符號。+
正號前面的符號省略。但是可以指示瀏覽器通過使用符號說明符在正數前面顯示+
符號。例如:
$num1=10;
$num2=-10;
$output=sprintf("%d",$num1);
echo "$output<br>";
$output=sprintf("%d",$num2);
echo "$output";
輸出:
10
-10
這裏+
符號省略了正數之前。但是,如果我們在%
字符%d
後面加上+
符號,則不再發生省略。
$num1=10;
$num2=-10;
$output=sprintf("%+d",$num1);
echo "$output<br>";
$output=sprintf("%+d",$num2);
echo "$output";
輸出:
+10
-10
2.Padding說明符:
的填充符添加一定數目的字符的輸出的左或右的。字符可以是空白,零或任何其他ASCII字符。
例如,
$str="hello";
$output=sprintf("[%10s]",$str);
echo $output;
源代碼輸出:
[ hello] //Total length of 10 positions,first five being empty spaces and remaining five being "hello"
HTML輸出:
[ hello] //HTML displays only one empty space and collapses the rest, you have to use the <pre>...</pre> tag in the code for HTML to preserve the empty spaces.
把一個負號左邊證明的輸出:
$output=["%-10s",$string];
echo $output;
源碼輸出:
[hello ]
HTML輸出:
[hello ]
把0
後%
標誌替換空的空間用零。
$str="hello";
$output=sprintf("[%010s]",$str);
echo $output;
輸出:
[00000hello]
左對齊
$output=sprintf("[%-010s]",$str);
輸出:
[hello00000]
把隨後像*
AF任何ASCII字符'
之三%
結果在ASCII字符的顯示,而不是空的空間
$str="hello";
$output=sprintf("[%'*10s]",$str);
echo $output;
輸出:
*****hello
左對齊:
$output=sprintf("[%-'*10s]",$str);
echo $output;
輸出:
hello*****
有很多很多的例子該文檔頁面。你總是可以自己嘗試一下! –