php中格式化输出函数sscanf,vprintf,fprintf,printf,sprintf,vfprintf,vsprintf
web PHP 2019-04-22 2597 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

7441448 2655 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)

sscanf() 函数

sscanf() 函数根据指定的格式解析来自字符串的输入。 sscanf() 函数基于格式字符串向变量中解析字符串。

如果只向该函数传递两个参数,数据将以数组的形式返回。


<?php
$str = "age:30 weight:60kg";
print_r(sscanf($str,"age:%d weight:%dkg")); // Array ( [0] => 30 [1] => 60 )
?>


否则,如果传递了额外的参数,则被解析的数据会存储在这些参数中。


<?php
$str = "age:30 weight:60kg";
sscanf($str,"age:%d weight:%dkg",$age,$weight);
echo $age; // 30
echo $weight; // 60
?>


如果区分符的数目大于包含它们的变量的数目,则会发生错误。


<?php
// 两个区分符,只有一个变量,提示错误
$str = "age:30 weight:60kg";
sscanf($str,"age:%d weight:%dkg",$age);
echo $age; 
echo $weight; 
// Warning: sscanf(): Different numbers of variable names and field specifiers in
// Notice: Undefined variable: weight in
?>


不过,如果区分符的数目小于包含它们的变量的数目,则额外的变量包含 NULL。


<?php
// 有2个区分符,3个变量
$str = "age:30 weight:60kg";
sscanf($str,"age:%d weight:%dkg",$age,$weight,$abc);
echo $age; // 30
echo $weight; // 60
echo $abc;
// 跟手册说的不一样,提示错误Warning: sscanf(): Variable is not assigned by any conversion specifiers in
?>


语法
sscanf(string,format,arg1,arg2,arg++)
string 必需。规定要读取的字符串。
format  必需。规定要使用的格式。
可能的格式值:
%% - 返回一个百分号 %
%c - ASCII 值对应的字符
%d - 包含正负号的十进制数(负数、0、正数)
%e - 使用小写的科学计数法(例如 1.2e+2)
%u - 不包含正负号的十进制数(大于等于 0)
%f - 浮点数
%o - 八进制数
%s - 字符串
%x - 十六进制数(小写字母)
%X - 十六进制数(大写字母)
附加的格式值。必需放置在 % 和字母之间(例如 %.2f):
+ (在数字前面加上 + 或 - 来定义数字的正负性。默认地,只有负数做标记,正数不做标记)
' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。)
- (左调整变量值)
[0-9] (规定变量值的最小宽度)
.[0-9] (规定小数位数或最大字符串长度)
注释:如果使用多个上述的格式值,它们必须按照上面的顺序使用。
arg1 可选。存储数据的第一个变量。
arg2 可选。存储数据的第二个变量。
arg++ 可选。存储数据的第三、四个变量,依此类推。


printf() 函数

printf() 函数输出格式化的字符串。
arg1、arg2、arg++ 参数将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。
注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入到 % 符号之后,由数字和 "\$" 组成。请参见示例二。
示例一

使用格式值 %f

<?php
$number = 123;
printf("%f",$number); // 123.000000
?>
示例二

使用占位符

<?php
$number = 123;
printf("有两位小数:%1\$.2f<br>没有小数:%1\$u",$number); // 1\$是一个占位符,因为用到2次,所以需要用占位符
// 有两位小数:123.00
// 没有小数:123
?>
示例三

所有可能的格式值的演示

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2

// 注释:格式值 "%%" 返回百分号
printf("%%b = %b <br>",$num1); // 二进制数                %b = 111010110111100110100010101 
printf("%%c = %c <br>",$char); // ASCII 字符              %c = 2 
printf("%%d = %d <br>",$num1); // 带符号的十进制数        %d = 123456789 
printf("%%d = %d <br>",$num2); // 带符号的十进制数        %d = -123456789
printf("%%e = %e <br>",$num1); // 科学计数法(小写)      %e = 1.234568e+8 
printf("%%E = %E <br>",$num1); // 科学计数法(大写)      %E = 1.234568E+8 
printf("%%u = %u <br>",$num1); // 不带符号的十进制数(正)%u = 123456789 
printf("%%u = %u <br>",$num2); // 不带符号的十进制数(负)%u = 4171510507 
printf("%%f = %f <br>",$num1); // 浮点数(视本地设置)    %f = 123456789.000000 
printf("%%F = %F <br>",$num1); // 浮点数(不视本地设置)  %F = 123456789.000000 
printf("%%g = %g <br>",$num1); // 短于 %e 和 %f           %g = 1.23457e+8 
printf("%%G = %G <br>",$num1); // 短于 %E 和 %f           %G = 1.23457E+8 
printf("%%o = %o <br>",$num1); // 八进制数                %o = 726746425 
printf("%%s = %s <br>",$num1); // 字符串                  %s = 123456789 
printf("%%x = %x <br>",$num1); // 十六进制数(小写)      %x = 75bcd15 
printf("%%X = %X <br>",$num1); // 十六进制数(大写)      %X = 75BCD15 
printf("%%+d = %+d <br>",$num1); // 符号说明符(正)      %+d = +123456789 
printf("%%+d = %+d <br>",$num2); // 符号说明符(负)      %+d = -123456789 
?>
示例四

字符串说明符的演示

<?php
$str1 = "Hello";
$str2 = "Hello world!";

printf("[%s]<br>",$str1);    // [Hello]
printf("[%8s]<br>",$str1);   // [ Hello]   // 不明白
printf("[%-7s]<br>",$str1);  // [Hello ]   // 不明白
printf("[%08s]<br>",$str1);  // [000Hello]
printf("[%'*8s]<br>",$str1); // [***Hello]
printf("[%8.8s]<br>",$str2); // [Hello wo] // 不明白
?>
fprintf() 函数

fprintf() 函数把格式化的字符串写入指定的输出流(例如:文件或数据库)。(其他与printf一样)
arg1、arg2、arg++ 参数将被插入主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。
注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入到 % 符号后面,由数字和 "\$" 组成。

<?php
$number = 123;
$file = fopen("test.txt","w");
fprintf($file,"%f",$number);
// 123.000000被写入到文件 "test.txt"
?>

sprintf() 函数

sprintf() 函数把格式化的字符串写入变量中。(其他与printf一样)
arg1、arg2、++ 参数将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。
注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符位于 % 符号之后,由数字和 "\$" 组成。

<?php
// 把格式化的字符串写入变量$txt中
$number = 123;
$txt = sprintf("%f",$number);
echo $txt; // 123.000000
?>
vfprintf() 函数

vfprintf() 函数把格式化的字符串写到指定的输出流(例如:文件或数据库)。
与 fprintf() 不同,vfprintf() 中的参数位于数组中。数组元素将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入第一个数组元素,在第二个 % 符号处,插入第二个数组元素,依此类推。
注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入到 % 符号之后,由数字和 "\$" 组成。

<?php
$num1 = 123;
$num2 = 456;
$file = fopen("test.txt","w");
vfprintf($file,"%f%f",array($num1,$num2));
// 123.000000456.000000文本写入到文件"test.txt"中
?>
vprintf() 函数

vprintf() 函数输出格式化的字符串。
与 printf() 不同,vprintf() 中的参数位于数组中。数组元素将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入第一个数组元素,在第二个 % 符号处,插入第二个数组元素,依此类推。
注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入到 % 符号之后,由数字和 "\$" 组成。

<?php
$num1 = 123;
$num2 = 456;
vprintf("%f%f",array($num1,$num2));
// 123.000000456.000000
?>
vsprintf() 函数

vsprintf() 函数把格式化字符串写入变量中。
与 sprintf() 不同,vsprintf() 中的参数位于数组中。数组元素将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入第一个数组元素,在第二个 % 符号处,插入第二个数组元素,依此类推。
注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入到 % 符号之后,由数字和 "\$" 组成。

<?php
$num1 = 123;
$num2 = 456;
$txt = vsprintf("%f%f",array($num1,$num2));
echo $txt; // 123.000000456.000000
?>



版权声明:本篇文章来源于网络。 来源链接

相关推荐
php实现ZIP压缩文件解压缩,中文乱码解决方法(重要)
PHP | 2019-04-30 6233
直接上代码,具体代码里面都有注释。直接中文压缩文件解压到中文文件夹。 <?php // 需开启配置 php_zip.dll // phpinfo(); header("Content-type:text/html;charset=utf-8"); /* * $filename 被解压文件名 * $path 解压...
openssl_private_decrypt解密失败
PHP | 2019-01-16 6012
复制别人的解密程序,原程序可以解密,复制过来就不可以 一步步尝试发现,秘钥换行符有区别, 原秘钥有换行符,复制过来不知道什么时候把换行符清空了,成了一行字符串了。
评论:0条
评论加载中...
发表评论