sprintf
返回格式化的字符串
把百分號(%)符號替換成一個作為參數進行傳遞的變量:
<span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$number</span> <span class="token operator">=</span> <span class="token number">2</span> <span class="token punctuation">;</span> <span class="token variable">$str</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Shanghai"</span> <span class="token punctuation">;</span> <span class="token variable">$txt</span> <span class="token operator">=</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"There are %u million cars in %s."</span> <span class="token punctuation">,</span> <span class="token variable">$number</span> <span class="token punctuation">,</span> <span class="token variable">$str</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token variable">$txt</span> <span class="token punctuation">;</span> <span class="token delimiter important">?></span></span>
使用格式值%f:
<span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$number</span> <span class="token operator">=</span> <span class="token number">123</span> <span class="token punctuation">;</span> <span class="token variable">$txt</span> <span class="token operator">=</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%f"</span> <span class="token punctuation">,</span> <span class="token variable">$number</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token variable">$txt</span> <span class="token punctuation">;</span> <span class="token delimiter important">?></span></span>
使用佔位符:
<span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$number</span> <span class="token operator">=</span> <span class="token number">123</span> <span class="token punctuation">;</span> <span class="token variable">$txt</span> <span class="token operator">=</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"帶兩位小數:%1\$.2f <br>不帶小數:%1\$u"</span> <span class="token punctuation">,</span> <span class="token variable">$</span> number <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token variable">$txt</span> <span class="token punctuation">;</span> <span class="token delimiter important">?></span></span>
對所有可能的格式值的演示:
<span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$num1</span> <span class="token operator">=</span> <span class="token number">123456789</span> <span class="token punctuation">;</span> <span class="token variable">$num2</span> <span class="token operator">=</span> <span class="token operator">-</span> <span class="token number">123456789</span> <span class="token punctuation">;</span> <span class="token variable">$char</span> <span class="token operator">=</span> <span class="token number">50</span> <span class="token punctuation">;</span> <span class="token comment">// ASCII 字符50 是2</span> <span class="token comment">// 註釋:格式值"%%" 返回百分號</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%b = %b"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 二進制數</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%c = %c"</span> <span class="token punctuation">,</span> <span class="token variable">$char</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// ASCII 字符</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%d = %d"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 帶符號的十進制數</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%d = %d"</span> <span class="token punctuation">,</span> <span class="token variable">$num2</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 帶符號的十進制數</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%e = %e"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 科學計數法(小寫)</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%E = %E"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 科學計數法(大寫)</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%u = %u"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 不帶符號的十進制數(正)</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%u = %u"</span> <span class="token punctuation">,</span> <span class="token variable">$num2</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 不帶符號的十進制數(負)</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%f = %f"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 浮點數(視本地設置)</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%F = %F"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 浮點數(不視本地設置)</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%g = %g"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 短於%e 和%f</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%G = %G"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 短於%E 和%f</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%o = %o"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 八進制數</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%s = %s"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 字符串</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%x = %x"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 十六進制數(小寫)</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%X = %X"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 十六進制數(大寫)</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%+d = %+d"</span> <span class="token punctuation">,</span> <span class="token variable">$num1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 符號說明符(正)</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"%%+d = %+d"</span> <span class="token punctuation">,</span> <span class="token variable">$num2</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token comment">// 符號說明符(負)</span> <span class="token delimiter important">?></span></span>
對字符串說明符的演示:
<span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$str1</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Hello"</span> <span class="token punctuation">;</span> <span class="token variable">$str2</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Hello world!"</span> <span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"[%s]"</span> <span class="token punctuation">,</span> <span class="token variable">$str1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"[%8s]"</span> <span class="token punctuation">,</span> <span class="token variable">$str1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"[%-8s]"</span> <span class="token punctuation">,</span> <span class="token variable">$str1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"[%08s]"</span> <span class="token punctuation">,</span> <span class="token variable">$str1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"[%'*8s]"</span> <span class="token punctuation">,</span> <span class="token variable">$str1</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token function">sprintf</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"[%8.8s]"</span> <span class="token punctuation">,</span> <span class="token variable">$str2</span> <span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span> <span class="token delimiter important">?></span></span>