PHP字符串函数之 sscanf echo print sprintf vsprintf printf vprintf fprintf vfprintf
- sscanf – 根据指定格式解析输入的字符
- echo – 输出一个或多个字符串
- print – 输出字符串
- sprintf – 返回格式化字符串
- vsprintf – 返回格式化字符串 (参数为数组)
- printf – 直接输出格式化字符串
- vprintf – 直接输出格式化字符串 (参数为数组)
- fprintf – 将格式化后的字符串写入到流
- vfprintf – 将格式化后的字符串写入到流 (参数为数组)
sscanf
根据指定格式解析输入的字符
mixed sscanf ( string $str , string $format [, mixed &$... ] )
这个函数 sscanf() 类似 printf()的输入版。
sscanf() 读取字符串str 然后根据指定格式format解析, 格式的描述文档见 sprintf()。
注意
指定的格式字符串中的任意空白匹配输入字符串的任意空白.也就是说即使是格式字符串中的一个制表符 \t 也能匹配输入 字符串中的一个单一空格字符
示例
//不区分语言地区
<?php
$current_date = "2016年 1月 8日";
$var = sscanf($current_date, "%d%s %d%s %d%s");
var_dump($var);
/*
输出
array
0 => int 2016
1 => string '年' (length=2)
2 => int 1
3 => string '月' (length=2)
4 => int 8
5 => string '日' (length=2)
*/
?>
/*D 表示十进制数字.(%D 与 %d相同)
因为在PHP源码中'd'与'D'代码是一样的
case 'd':
case 'D':
op = 'i';
base = 10;
fn = (long (*)())strtol;
break;
*/
<?php
$hex = 0xFF;
$var = sscanf($hex, "%d");
var_dump($var);
/*
输出
array
0 => int 255
*/ //D 无法识别字符串中的16进制
$hex = "0xFF";
$var = sscanf($hex, "%d");
var_dump($var);
/*
输出
array
0 => int 0
*/
?> // i 可以识别字符串中的16进制
<?php
$hex = "0xFF";
$var = sscanf($hex, "%i");
var_dump($var);
/*
输出
array
0 => int 255
*/
?> //n 表示到目前为止的字符数,一个中文字符相当于两个英文字符
<?php
$number = "0123456789 八个字符";
$var = sscanf($number, "%s %n%s%n");
var_dump($var);
/*
输出
array
0 => string '0123456789' (length=10)
1 => int 11
2 => string '八个字符' (length=8)
3 => int 19
*/
?> //传入参数
<?php
$name = "";
$age = 0;
$name_age = "zhangsan 19";
$num = sscanf($name_age, "%s %d", $name, $age);
var_dump($num); // int 2 (返回值为参数个数)
var_dump($name); // string 'zhangsan' (length=8)
var_dump($age); // int 19
echo
输出一个或多个字符串
void echo ( string $arg1 [, string $... ] )
//普通输出
echo "Hello World"; //下面两条,在网页中都是在一行显示,但是查看源文件的话,会看到是按格式输出的
echo "This spans
multiple lines. The newlines will be
output as well"; echo "This spans\nmultiple lines. The newlines will be\noutput as well."; //转义双引号
echo "Escaping characters is done \"Like this\"."; //输出变量名 使用单引号
echo 'foo is $foo'; // foo is $foo //输出变量值 使用双引号
$foo = "foobar";
echo "foo is $foo"; // foo is foobar //输出数组中的元素
$baz = array("value" => "foo");
echo "this is {$baz['value']} !";// this is foo !
echo "this is $baz !"; // this is Array ! //输出多个变量
$foo = "foobar";
$bar = "barbaz";
echo $foo,$bar; //foobarbarbaz //按格式输出多行
//仍然是在网页中都显示在一行,但是查看源文件的话,会看到是按格式输出的
echo <<<END
This uses the "here document" syntax to output
multiple lines with $variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!
END; //echo 与 print区别
$some_var = true;
($some_var) ? echo 'true' : echo 'false'; // PHP报错
($some_var) ? print 'true' : print 'false'; // true
//不过可以用另外一种写法
echo $some_var ? 'true': 'false';
?> <?php
//因为是一个语言结构而不是一个函数,不能被 变量函数(variable functions) 调用。
$func = "strpos";
echo $func("0123456",'6'); // int 6 $func = "echo";
$func "123"; //PHP报错
?>
注意
echo 不是一个函数(它是一个语言结构), 因此你不一定要使用小括号来指明参数,单引号,双引号都可以。
echo (不像其他语言结构)没有表现得像一个函数, 所以不能总是被用在一个函数的上下文。
另外,如果你想给echo 传递多个参数, 那么就不能使用小括号。
输出字符串
int print ( string $arg )
注意
print 实际上不是一个函数(它是一个语言结构),因此你不使用圆括号来括起它的参数列表也可以。
<?php
print("Hello World"); //Hello World
print "Hello World"; //Hello World //在网页中显示在一行,但是查看源文件的话,会看到是按多行输出的可以
print "This spans
multiple lines. The newlines will be
output as well"; /*print基本与echo使用方法相同,处了echo 没有返回值,print 总是返回1以外
还有下面的区别,其他使用可以参见echo的使用*/
$some_var = true;
($some_var) ? echo 'true' : echo 'false'; // PHP报错
($some_var) ? print 'true' : print 'false'; // true
?>
sprintf
返回一个格式化字符串
string sprintf ( string $format [, mixed $args [, mixed $... ]] )
- 1
- 1
参数说明
format
这个format字符串由零个或多个指令组成,普通字符(除了’%’)直接复制到返回值,规定的转换指令与参数一一对应。
%% - 百分比符号
%b - 二进制数
%c - ASCII码字符
%d - 带符号十进制数
%e - 科学计数法 (e.g. 1.2e+2)
%E - 科学计数法 (e.g. 1.2E+2)
%f - 浮点数(locale aware)
%F - 浮点数(non-locale aware, 看了PHP5.2的源码%F也调用了 localeconv())
%g - 较短的 %e 和 %f.
%G - 较短的 %E 和 %f.
%o - 八进制数
%s - 字符串
%u - 无符号十进制数
%x - 十六进制(小写)
%X - 十六进制(大写)
注意
组合字符串的宽度超过一个字节字符集字符可能会导致意想不到的结果
(简单理解就是使用中文可能会出问题)
类型列表
| 类型 | 指令 |
|---|---|
| string | s |
| integer | b,o,d,u,x,X,c |
| double | g,G,e,E,f,F |
PHP字符串函数之 sscanf echo print sprintf vsprintf printf vprintf fprintf vfprintf的更多相关文章
- php输出语句 echo print printf print_r var_dump sprintf
php的几种输出方式: echo 常用的输出语句,例如:echo 'helloworld!'; print() 输出语句,有返回值.例如:print('helloworld!'); 输出成功返回1,失 ...
- Linux C 字符串函数 sprintf()、snprintf() 详解
一.sprintf() 函数详解 在将各种类 型的数据构造成字符串时,sprintf 的强大功能很少会让你失望. 由于 sprintf 跟 printf 在用法上几乎一样,只是打印的目的地不同而已,前 ...
- [转载]Linux C 字符串函数 sprintf()、snprintf() 详解
一.sprintf() 函数详解 在将各种类 型的数据构造成字符串时,sprintf 的强大功能很少会让你失望. 由于 sprintf 跟 printf 在用法上几乎一样,只是打印的目的地不同而已,前 ...
- PHP函数积累总结(Math函数、字符串函数、数组函数)
Math函数:10个较常用标红.abs — 绝对值acos — 反余弦acosh — 反双曲余弦asin — 反正弦asinh — 反双曲正弦atan2 — 两个参数的反正切atan — 反正切ata ...
- php 常用字符串函数总结
php里面自带的字符串函数,日期函数,数组函数等,有时候可以帮助我们解决很复杂的问题,运用起来也比较简单. 下面总结了一下常用的字符串函数. addcslashes — 为字符串里面的部分字符添加反斜 ...
- PHP字符串函数总结
字符串函数 addcslashes — 为字符串里面的部分字符添加反斜线转义字符 addslashes — 用指定的方式对字符串里面的字符进行转义 bin2hex — 将二进制数据转换成十六进制表示 ...
- 前端学PHP之字符串函数
× 目录 [1]特点 [2]输出 [3]空格[4]大小写[5]HTML[6]格式化[7]比较 前面的话 字符串的处理和分析在任何编程语言中都是一个重要的基础,往往是简单而重要的.信息的分类.解析.存储 ...
- PHP部分字符串函数汇总
PHP部分字符串函数汇总 提交 我的评论 加载中 已评论 PHP部分字符串函数汇总 2015-03-10 PHP100中文网 PHP100中文网 PHP100中文网 微信号 功能介绍 互联网开发者社区 ...
- php中sprintf与printf函数用法区别
下面是一个示例:四舍五入保留小数点后两位 代码如下 复制代码 <?php$num1 = 21;echo sprintf("%0.2f",$num1)."<b ...
随机推荐
- Python全栈开发记录_第三篇(linux(ubuntu)的操作)
该篇幅主要记录linux的操作,常见就不记录了,主要记录一些不太常用.难用或者自己忘记了的点. 看到https://www.cnblogs.com/resn/p/5800922.html这篇幅讲解的不 ...
- Laravel数据库操作 Eloquent ORM
模型首先在App目录下建立student的文件夹 里面放上 Student.php 且需要继承基类Model //允许批量赋值的字段// protected $fillable = ['name',' ...
- ABAP-表中数据的横向累加
GLT0 等表中数据的横向累加 ——塞依SAP培训 在 ABAP 的 GLT0.FAGLFLEXT 等余额表中,用诸如 TSL01.TSL02 …… TSL16 等字段记录了 16 个期间的发生额 ...
- mysql 索引type介绍
以下全部详细解析explain各个属性含义: 各属性含义: id: 查询的序列号 select_type: 查询的类型,主要是区别普通查询和联合查询.子查询之类的复杂查询 SIMPLE:查 ...
- json 异常
com.google.gson.JsonSyntaxException: 1530842820000 1530842820000 是服务器直接返回的Date值由 Gson 解析后出来的值. 后台发出: ...
- mysql_day02
MySQL-Day01回顾1.MySQL的特点 1.关系型数据库 2.跨平台 3.支持多种编程语言2.MySQL的启动和连接 1.服务端启动 sudo /etc/init.d/mysql start| ...
- Django缓存设置
由于Django构建得是动态网站,每次客户端请求都要严重依赖数据库,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中, ...
- cmd中sudo以后显示password不能输入密码
文本界面还是图形界面下输入密码都不会有回显,这是为了安全考虑. 其实你不是不能输入密码只是你看不到而已,事实上你已经输入进去了,回车后就能看到效果了. 来源于:https://zhidao.baidu ...
- 【python中二叉树的实现】python中二叉树的创建、三种方式递归遍历和非递归遍历
代码如下: # coding=utf-8 class myNode(object): def __init__(self, data=-1, lchild=None, rchild=None): se ...
- stark组件开发之关键搜索
- 模糊搜索: 在页面生成一个表单. 以get 方式, 将数据提交到.当前查看页面. 后台接收数据,然后进行筛选过滤. 着个也需要,用户自定制! 定义一个 search_list 这个值,默 ...