‘壹’ php中sprintf怎么用与printf,vprintf各有什么区别和联系
int fprintf()(FILE *stream, const char *format, ...)
fprintf()转化并格式化地写入输出流。返回值是写入的字符个数;或者为负数,如果有错误发生。
int printf()(const char *format, ...)
printf(...)与fprintf(stdout, ...)等价。
int sprintf(char *s, const char *format, ...)
sprintf与printf相同,只是输出被写入字符串s,并且以’\0’结束。s必须足够大以容纳结果。函数返回不包括’\0’的字符数。
int vprintf(const char *format, va_list arg)
函数vprintf与printf等价,只是用arg替换了变量参数列表,arg由va_start宏初始化,并且va_arg可能会调用它。
int putchar(int c)
putchar(c)与putc(c,stdout)等价。
‘贰’ PHP怎么定义保留2位小数的变量
在php中要保留两位小数的方法有很多种办法,有如:printf,substr,number_format,round等等方法
方法一
sprintf()函数 ,sprintf() 函数把格式化的字符串写写入一个变量中
<?php
$number=123;
$txt=sprintf("%f",$number);
echo$txt;
?>
输出:
123.000000
方法二substr()函数
$num=123213.666666;
echosprintf("%.2f",substr(sprintf("%.3f",$num),0,-2));
方法三 number_format()函数
$number=1234.5678;
$nombre_format_francais=number_format($number,2,',','');//1234,57
$english_format_number=number_format($number,2,'.','');//1234.57(我一般用这个)
方法四 round 函数,round() 函数对浮点数进行四舍五入。
<?php
echo(round(0.60));
echo(round(0.50));
echo(round(0.49));
echo(round(-4.40));
echo(round(-4.60));
?>
输出:
1
1
0
-4
-5
如果要保留小数,后来参数根保留小数位数即可。
$number=1234.5678;
echoround($number,2);//1234.57
‘叁’ PHP中的文件系统函数(一)
从这篇文章开始,我们将学习一系列的 PHP 文件系统相关函数。其实这些函数中,有很多都是我们经常用到的,大家并不需要刻意地去记住它们,只要知道有这么个东西,在使用的时候记得来查文档就可以了。
文件路径相关的函数往往在一些框架中会比较常见,而且多会配合 __FILE__ 、 __DIR__ 之类的魔术常量使用。
basename() 函数是获得路径中的文件名,它有两个参数,第一个是文件的路径,第二个是过滤掉的内容,比如第一条测试语句我们过滤掉文件的后缀名。
dirname() 返回的是路径中的路径部分,也就是不包含文件名的那部分内容,和 basename() 正好是相反的功能。
pathinfo() 函数用于以数组的形式返回路径中的信息,从结果来看,我们可以看到文件的 dirname 部分,basename 部分,以及文件的扩展名 extension 和不包含扩展名的 filename 内容。
realpath() 返回的是规范化的绝对路径名,它扩展所有的符号连接并且处理输入的路径中的 ./ 、 ../ 以及多余的 / ,返回的内容是标准规范的绝对路径。
接下来,我们学习一些修改文件相关属性的函数,主要就是在 Linux 系统环境中的文件权限信息的操作。
当然,首先我们得创建一个文件。和 Linux 中的命令是非常类似的。
touch() 函数除了给出要创建的文件名之外,还有两个可选参数可以指定文件的创建时间及访问时间,不给参数的话默认就是当前时间。这个文件名可以是相对或绝对路径中有权限的目录,并在该目录下创建一个空的文件。
通过 fileowner() 函数,我们可以获得某个文件所属的用户,默认情况下我们的用户是当前运行 PHP 脚本的用户,也就是系统目前的登录用户。在这里,我们使用 chown() 函数,将用户改为 www 用户。clearstatcache() 是用于清理文件系统的缓存信息,如果不清理一下的话,fileowner() 返回的依然还是之前的用户信息。
同理,使用 filegroup() 函数获得文件的属组信息,chgrp() 用于修改文件的属组。fileperms() 用于返回文件的权限信息,它返回的是数字模式的文件访问权限,这里我们使用 sprintf() 格式化结果后获得我们常用的 Linux 系统权限格式。chmod() 函数用于修改文件的权限,它的权限参数是三个 8 进制数据组成的数字,也就是代表 Linux 系统中的 1 、2 、4 和它们的组合,所以我们需要在前面再加上一个 0 用于确保操作能够正常执行。关于系统文件权限的知识大家需要认真学习 Linux 系统中相关的内容。
注意,上述函数如果在命令行中运行失败,大部分原因是没有权限,可以使用 sudo 进行测试。在 fastcgi 中运行时,就更加需要注意权限问题,仅在我们服务器可以操作的目录中进行安全的文件权限修改。
stat() 函数可以获取到指定文件的所有属性信息,在这里我们可以看到文件的 uid 、 gid 、 ctime 、 mtime 等信息。
在 Linux 系统中,有软连接和硬连接的相关知识。其实软连接就像是 Windows 中的快捷方式,而硬连接相关于复制了一份数据。在 PHP 中,也为我们提供了创建软硬连接以及相关的一些操作。
使用 link() 函数创建的就是一个指定文件的硬连接文件,而使用 symlink() 创建的则是一个软连接文件。相对来说,我们使用软连接的场景会更多一些。lstat() 就和 stat() 函数的功能一样,查看文件的各种属性信息,不过 lstat() 函数针对的是软硬连接文件。
同样地,我们也可以修改软硬连接的用户和用户组信息,不过它们的信息不能通过 fileowner() 或 filegroup() 查看。因为它们是连接文件,本身还是和原始文件绑定在一起的,使用 fileowner() 这类的函数查看到的依然是原始文件的信息。我们可以在系统环境中使用 ls -l 查看连接文件的用户和用户组信息是否修改成功。
今天的内容比较简单,而且修改权限的操作也并不常用。不过对于系统安全来,它们还是非常有用的,比如对于上传来说,我们要预防上传可执行文件的话,就可以通过修改文件的权限来让文件无法直接运行,从而起到安全保护的作用。另外,目录路径相关的操作也是一些框架的基础,几乎所有框架的入口或者说是 Composer 的入口,都会见到 dirname() 以及 basename() 之类函数的身影。
测试代码:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202010/source/6.PHP中的文件系统函数(一).php
参考文档:
https://www.php.net/manual/zh/ref.filesystem.php
‘肆’ PHP如何格式化数字
PHP格式化数字的函数是number_format
我建议你去下载一个PHP的使用手册,或者看网上的在线手册也行。
http://www.itlearner.com/code/php/
关于他的用法如下:
语法: string number_format(float number, int [decimals], string [dec_point], string [thousands_sep]);
返回值: 字符串
函数种类: 数学运算
内容说明
本函数用来将浮点参数 number 格式化。若没加参数 decimals 则返回的字符串只要整数部份,加了此参数才依参数指定的小数点位数返回。参数 dec_point 表示小数点的表示方式方法,默认值是 ".",若需要转换成其它的小数点就可以在这个参数改掉。参数 thousands_sep 为整数部份每三位的分隔符号,默认值是 ","。本函数最特别的地方就是参数数目,最少要有一个,也就是欲格式化的字符串;也可以有二个或者四个参数,但不能用三个参数。治募�注意的是指定小数点的位数之后的数字直接舍弃,没有四舍五入的情形。
使用范例
<?
$short_pi = "3.14159";
$my_pi = number_format($short_pi, 2);
echo $my_pi."\n"; // 3.14
$foo = 850017.9021;
$new_foo = number_format($foo, 3, ".", " ");
echo $new_foo."\n"; // 850 017.902
?>
‘伍’ php中整形转换为浮点型,并精确的小数点后两位
PHP 中sprintf函数可以将整数格式化为浮点格式。比如格式化参数:%nf;其中,n 表示小数点后的位数。比如:
<?php
$num=9.8;
$res=sprintf("%.2f", $num);
//输出:9.80
?>
‘陆’ 如何使用PHP函数sprintf将字符串格式化
如果有一个字符串$str = '99.9';,怎么样使这个字符串变成99.90呢?
我们需要用到PHP的格式化字符串函数sprintf()
函数说明:sprintf(格式, 要转化的字符串)
返回:格式化好的字符串
例子:
$str = '99.9';
$result = sprintf('%01.2f', $str);
echo $result;//结果显示99.90
解释下,上面例子中的格式
这个 %01.2f 是什么意思呢?
1、这个 % 符号是开始的意思,写在最前面表示指定格式开始了。 也就是 "起始字符", 直到出现 "转换字符" 为止,就算格式终止。
2、跟在 % 符号后面的是 0, 是 "填空字符" ,表示如果位置空着就用0来填满。
3、在 0 后面的是1,这个 1 是规定整个所有的字符串占位要有1位以上(小数点也算一个占位)。
如果把 1 改成 6,则 $result的值将为 099.90
因为,在小数点后面必须是两位,99.90一共5个占位,现在需要6个占位,所以用0来填满。
4、在 %01 后面的 .2 (点2) 就很好理解了,它的意思是,小数点后的数字必须占2位。 如果这时候,$str 的值为9.234,则 $result的值将为9.23.
为什么4 不见了呢? 因为在小数点后面,按照上面的规定,必须且仅能占2位。 可是 $str 的值中,小数点后面占了3位,所以,尾数4被去掉了,只剩下 23。
5、最后,以 f "转换字符" 结尾。
‘柒’ php,sprintf函数输出字符串问题
你运行一下这个代码,输出内容是:
[many monke]
printf的第一个参数是输出内容,后面的参数对应第一个参数里面的%*。例如本例代码,第一个参数是[%s],表示输出第二个参数,作为字符串。%10.10s里面的10.10表示输出占10个字符宽度、从字符串左边开始、最多只输出10个字符,输出的内容靠右、如果不够宽度(例如10.8s输出[ many mon])则空格在左边。
‘捌’ PHP echo,print,printf,sprintf函数的区别和使用
printf函数与sprintf不同之处有: (1)函数的声明不同 int printf(const char *format [, argument]);int sprintf(char *buffer, const char *format [, argument] );sprintf比printf多一个参数buffer,这个参数的作用见(2)的描述。 (
‘玖’ php 中的字符串中的%s和%d是什么意思
亲,字符串中的%s和%d代表你一定格式的可替换占位符。
%s:代表字符串
%d:代表数字
例如:
echo sprintf('这是一个字符串:%s,这是一个数字:%d', '字符串', 123);
这个会输出:
这是一个字符串:字符串,这是一个数字:123
希望可以帮到你哟!~~有不懂的可以继续追问,或私信,或到boboidea-本人博客留言!~