当前位置: 首页> 函数类别大全> sprintf

sprintf

返回格式化的字符串
名称:sprintf
分类:字符串
所属语言:php
一句话介绍:把格式化的字符串写入变量中。

实例

例子 1

把百分号(%)符号替换成一个作为参数进行传递的变量:

<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>

亲自试一试

例子 2

使用格式值 %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>

亲自试一试

例子 3

使用占位符:

<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">$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>

亲自试一试

例子 4

对所有可能的格式值的演示:

<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>

亲自试一试

例子 5

对字符串说明符的演示:

<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>

亲自试一试

同类函数
  • 子字符串替换 str_replace

    str_replace

    子字符串替换
  • 输出一个或多个字符串 echo

    echo

    输出一个或多个字符串
  • 获取数字格式信息 localeconv

    localeconv

    获取数字格式信息
  • 基于区域设置的字符串比较 strcoll

    strcoll

    基于区域设置的字符串比较
  • 计算给定文件的md5哈希值 md5_file

    md5_file

    计算给定文件的md5哈希值
  • 将字符串的第一个字符设为小写 lcfirst

    lcfirst

    将字符串的第一个字符设为小写
  • 查找字符串首次出现的位置(不区分大小写) stripos

    stripos

    查找字符串首次出现的位置(不区分大小写)
  • 计算指定字符串在目标字符串中最后一次出现的位置 strrpos

    strrpos

    计算指定字符串在目标字符串中最后一次出现