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 ...
随机推荐
- 学习笔记:Stage.js(又叫Cut.js)——2D canvas 开发库,游戏方面的
http://piqnt.com/stage.js/ http://www.bootcdn.cn/stage.js/ Stage.js(可能又叫Cut.js)是一个2D HTML5 JavaScrip ...
- django 数据库查询 ORM
实用的logging模块: zaisetting配置中加入下列配置,将sql语句打印到屏幕上,可以进行查看. LOGGING = { 'version': 1, 'disable_existing_l ...
- linux目录与文件权限的意义
现在我们已经知道了Linux系统内文件的三种身份(所有者,用户者,与其他人),知道每种身份都有三种属性(r,w,x),已经能够使用chown,chgrp,chmod去修改这些权限和属性,那么这些文件权 ...
- git command line 提交代码
echo "# spring-boot-apollo-demo" >> README.md git init git add README.md git commit ...
- 干货|技术小白如何在45分钟内发行通证(TOKEN)并上线交易(附流程代码
https://blog.csdn.net/HiBlock/article/details/80071478
- chrome不能浏览任何网页,提示配置proxy,Ubuntu
自从在Ubuntu安装virtualbox以后,我的chrome浏览器就不能上网了,提示我检查proxy信息, 后面设置了noproxy就ok啦. 不用使用命令,一次设置,终身有效. 首先,安装gks ...
- 恢复mysql 中root 用户的所有权限
今天在研究数据库的时候不小心吧root用户的权限全给关了.这就尴尬了. 找了半天的解决方案. 如果你的用grant all 无法设定某个用户的权限可以试试这个方法. 1停止mysql服务器.使用ski ...
- FlannBasedMatcher 立体匹配
#include "opencv2/core/core.hpp" #include "opencv2/features2d/features2d.hpp" #i ...
- java集合: jdk1.8的hashMap原理简单理解
HashMap的数据结构 HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的,他的底层结构是一个数组,而数组的元素是一个单向链表.HashMap默认初始化的是一个长度为16位的数 ...
- C++ 获取字符串中的所有汉字
#include<iostream> using namespace std; int main() { char str[20] = "cd大家好df"; ...