当前位置: 首页> 函数类别大全> 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>

亲自试一试

同类函数
  • 将逻辑顺序希伯来文(logical-Hebrew)转换为视觉顺序希伯来文(visual-Hebrew),并且转换换行符 hebrevc

    hebrevc

    将逻辑顺序希伯来文(logical-He
  • 二进制安全比较字符串开头的若干个字符(不区分大小写) strncasecmp

    strncasecmp

    二进制安全比较字符串开头的若干个字符(不
  • 计算指定字符串在目标字符串中最后一次出现的位置 strrpos

    strrpos

    计算指定字符串在目标字符串中最后一次出现
  • 单向字符串散列 crypt

    crypt

    单向字符串散列
  • 基于区域设置的字符串比较 strcoll

    strcoll

    基于区域设置的字符串比较
  • rtrim的别名 chop

    chop

    rtrim的别名
  • 使用反斜线转义字符串 addslashes

    addslashes

    使用反斜线转义字符串
  • 二进制安全不区分大小写的字符串比较 strcasecmp

    strcasecmp

    二进制安全不区分大小写的字符串比较