【函数功能】
该函数根据指定的格式解析来自字符串的输入, 函数基于格式字符串向变量中解析字符串。
【函数语法】
sscanf ($str, $format, &$_ = null)
【参数说明】
$str:必需,要读取的字符串。
$format:必需,要使用的格式。
格式字符串中可能的格式值:
%% - 返回一个百分号 %
%c - ASCII 值对应的字符
%d - 包含正负号的十进制数(负数、0、正数)
%e - 使用小写的科学计数法(例如 1.2e+2)
%u - 不包含正负号的十进制数(大于等于 0)
%f - 浮点数
%o - 八进制数
%s - 字符串
%x - 十六进制数(小写字母)
%X - 十六进制数(大写字母)
附加的格式值。必需放置在 % 和字母之间(例如 %.2f):
+ (在数字前面加上 + 或 - 来定义数字的正负性。默认地,只有负数做标记,正数不做标记)
' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。)
- (左调整变量值)
[0-9] (规定变量值的最小宽度)
.[0-9] (规定小数位数或最大字符串长度)
注释:如果使用多个上述的格式值,它们必须按照上面的顺序使用。
arg1:可选,存储数据的第一个变量。
arg2:可选,存储数据的第二个变量。
arg++:可选,存储数据的第三、四个变量,依此类推。
【演示程序】
<?php
/**
* sscanf ($str, $format, &$_ = null)
* **/
$str = "hello i am PHP1234,i love PHP!";
$format ="hello i am PHP%d,i love %s";
$data = sscanf($str, $format);
var_dump($data);
echo '<br>';
sscanf($str, $format,$a,$b);
var_dump($a,$b);
?>
【输出结果】
array(2) { [0]=> int(1234) [1]=> string(4) "PHP!" }
int(1234) string(4) "PHP!"
【特别注意】
1.如果只向该函数传递两个参数,数据将以数组的形式返回。否则,如果传递了额外的参数,则被解析的数据会存储在这些参数中。如果区分符的数目大于包含它们的变量的数目,则会发生错误。不过,如果区分符的数目小于包含它们的变量的数目,则额外的变量包含 NULL。
2.$str和$format两个参数字符串必须一模一样,只是将$str中需要解析出来的某些字符用变量在$format中标记出来用于解析出来,否则会解析不出来。
3.PHP 版本:4.0.1+。
【原版定义】
/**
* Parses input from a string according to a format
* @link http://www.php.net/manual/en/function.sscanf.php
* @param str string <p>
* The input string being parsed.
* </p>
* @param format string <p>
* The interpreted format for str, which is
* described in the documentation for sprintf with
* following differences:
* Function is not locale-aware.
* F, g, G and
* b are not supported.
* D stands for decimal number.
* i stands for integer with base detection.
* n stands for number of characters processed so far.
* </p>
* @param _ mixed[optional]
* @return mixed If only two parameters were passed to this function, the values parsed will
* be returned as an array. Otherwise, if optional parameters are passed, the
* function will return the number of assigned values. The optional parameters
* must be passed by reference.
* </p>
* <p>
* If there are more substrings expected in the format
* than there are available within str,
* -1 will be returned.
*/
转载请注明出处:php1234.cn ,原文地址:http://www.php1234.cn/a/functions/2016/1111/128.html