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 ...
随机推荐
- Oracle不能并行直接添加主键的方法:先建唯一索引后建主键
环境:Oracle 11.2.0.3 需求:生产一张表由于前期设计不当,没有主键.现需要添加主键,数据量很大,想并行建立. 1.直接添加,提示ora-3001:未实施的功能;只能单线程建立主键 SQL ...
- 解决PHP使用POST提交数据不完整,数据不全的问题
在后台form中,通过ajax请求返回了一个有很多input的form表单,提交数据后,要格式化数组时发现提交过来的数据不完整. PHP从5.3.9开始 php.ini 增加一个变量 max_inpu ...
- 深度学习原理与框架-递归神经网络-RNN_exmaple(代码) 1.rnn.BasicLSTMCell(构造基本网络) 2.tf.nn.dynamic_rnn(执行rnn网络) 3.tf.expand_dim(增加输入数据的维度) 4.tf.tile(在某个维度上按照倍数进行平铺迭代) 5.tf.squeeze(去除维度上为1的维度)
1. rnn.BasicLSTMCell(num_hidden) # 构造单层的lstm网络结构 参数说明:num_hidden表示隐藏层的个数 2.tf.nn.dynamic_rnn(cell, ...
- ArcGIS自定义工具箱-修复损坏的工作空间
ArcGIS自定义工具箱-修复损坏的工作空间 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:替换数据源的工作空间 用途:针对损坏的数据源,批量进行修复 案例数 ...
- 数组中出现次数超过一半的数字(python)
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...
- FortiGate 路由
1.静态路由 防火墙外网口wan1 ip地址为202.1.1.2,对端ISP路由器G1/0口地址为202.1.1.1. 菜单: 路由--静态--静态路由,点击 "创建新的",按如下 ...
- 663. Equal Tree Partition 能否把树均分为求和相等的两半
[抄题]: Given a binary tree with n nodes, your task is to check if it's possible to partition the tree ...
- [leetcode]88. Merge Sorted Array归并有序数组
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: T ...
- 46-web页面登入前和登入后控制
可以将user存入session中,然后在前端根据能否取到user,来判断是否登入 <c:if test="${user == null }"> <li clas ...
- springboot + @KafkaListener 手动提交及消费能力优化
转载 https://blog.csdn.net/asd5629626/article/details/82776450 https://blog.csdn.net/asd5629626/artic ...