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 ...
随机推荐
- 202. 阿里Pandora Boot
[视频&交流平台] àSpringBoot视频:http://t.cn/R3QepWG à SpringCloud视频:http://t.cn/R3QeRZc à Spring Boot源 ...
- Visual Studio资源汇总
Visual Studio 2015:http://tieba.baidu.com/p/3442930798Visual Studio 2013:http://tieba.baidu.com/p/34 ...
- input输入限制
1:只能输入两位小数点:function keepTwoPointNum(that){ var val=that.value; if(isNaN(val)){ $(that).val(''); ret ...
- leetcode141
/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNo ...
- ReactiveX 学习笔记(21)使用 Rx.NET + ReactiveUI 进行 GUI 编程
课题 程序界面由3个文本编辑框和1个文本标签组成. 要求文本标签实时显示3个文本编辑框所输入的数字之和. 文本编辑框输入的不是合法数字时,将其值视为0. 3个文本编辑框的初值分别为1,2,3. 创建工 ...
- ReactiveX 学习笔记(20)使用 RxJava + RxBinding 进行 GUI 编程
课题 程序界面由3个文本编辑框和1个文本标签组成. 要求文本标签实时显示3个文本编辑框所输入的数字之和. 文本编辑框输入的不是合法数字时,将其值视为0. 3个文本编辑框的初值分别为1,2,3. 创建工 ...
- pyspider示例代码:解析JSON数据
pyspider示例代码官方网站是http://demo.pyspider.org/.上面的示例代码太多,无从下手.因此本人找出一下比较经典的示例进行简单讲解,希望对新手有一些帮助. 示例说明: py ...
- Selenium Webdriver元素定位的八种常用方式(转载)
转载自 https://www.cnblogs.com/qingchunjun/p/4208159.html 在使用selenium webdriver进行元素定位时,通常使用findElement或 ...
- Cocos2dx Android工程的启动过程
1.安卓工程下的设置启动activity为src下面的AppActivity,启动调用的onCreate并没有做过多的事情,只是调用了父类Cocos2dxActivity的onCreate.AppAc ...
- sqlserver2017 重装过程中出现“无法找到数据库引擎启动句柄”错误的解决办法
sqlserver数据库引擎修改账号名,详情参考:http://blog.51cto.com/djclouds/2089047?utm_source=oschina-app 在SQL Server安装 ...