首页 > PHP函数printf()、sprintf()的用法

PHP函数printf()、sprintf()的用法

printf()函数优点在于可以格式化输出

格式:

  %['padding_character][-][width][.precision]type

  所有的转换说明都是以%开始,如果想打印一个%符号,必须用%% ;

  参数“'padding_character”是可选,它将被用来填充变量直至所指定的宽度,该参数的作用就在变量前面填充,默认的填充字符是一个空格,如果指定“0”或者“ ”(空格),就不需要“'”单引号作为前缀,其他字符就必须指定“'”作为前缀;

  参数“-”是可选,它指左对齐,默认是右对齐;

  参数“width”是指被替换的变量的长度;

  参数“.precision”表示以小数点开始,它指明小数点后要显示的位数;

  参数“type”是类型码,请看下表:

    类型   |    含义

    b      |    解释为整数并作为二进制输出

    c      |    解释为整数并作为字符表示输出(ASCII码)

    d      |    解释为整数并作为整数输出

    f      |    解释为双精度并作为浮点数输出

    o      |    解释为整数并作为八进制数输出

    s      |    解释为字符串并为字符串输出

    u      |    解释为整数并作为非指定小数输出

    x      |    解释为整数并作为带有小写字母a-f的十六进制数输出

    X      |    解释为整数并作为带有大写字母A-F的十六进制数输出

示例:






$out = "The Books ";

$books = array("Book 1", "Book 2", "Book 3");

$pages = array("123 pages ", "234 pages", "345 pages");

for ($i = 0; $i < count($books); $i++) {

//第一个变量左对齐,宽度20,不足长度使用.号填充;第二个变量右对齐,宽度为7,左截取4个字符,不足使用.号对齐

    $out .= sprintf("%'.-20s%'.7.4s ", $books[$i], $pages[$i]);

}

echo $out;





// Outputs:

// 

// The Books

// Book 1.................123 

// Book 2.................234 

// Book 3.................345





$s = 'monkey';

$t = 'many monkeys';





printf("[%s] ",      $s); // standard string output

printf("[%10s] ",    $s); // right-justification with spaces

printf("[%-10s] ",   $s); // left-justification with spaces

printf("[%010s] ",   $s); // zero-padding works on strings too

printf("[%'#10s] ",  $s); // use the custom padding character '#'

printf("[%10.10s] ", $t); // left-justification but with a cutoff of 10 characters 

?>

测试结果:

The Books

Book 1.................123 

Book 2.................234 

Book 3.................345

[monkey]
[    monkey]
[monkey    ]
[0000monkey]
[####monkey]
[many monke]

sprintf()的用法和printf()完全一致,只是sprintf()将返回格式化的结果,并不直接输出结果。



更多相关:

  • 全卷积网络(FCN) 1.全卷积神经网络介绍 FCN对图像进行像素级的分类,从而解决了语义级别的图像分割(semantic segmentation)问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的fea...

  • 给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。 输入格式: 输入在一行中给出一个长度不超过10000的、仅...

  • 给定两个整数A和B,输出从A到B的所有整数以及这些数的和。 输入格式: 输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。 输出格式: 首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。 输入样例:...

  • python面试题目 原文地址:https://www.usblog.cc/blog/post/justzhl/b5cc9a05c7d2 问题一:以下的代码的输出将是什么? 说出你的答案并解释。 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Parent(object):     x...

  • ========插入操作========= ====插入单个属性=====--为第一个book节点插入属性name值为"直接插入"set @data.modify('insert (attribute name {"直接插入"})into (/bookstore/book)[1]')/*output: