Php/docs/function.sscanf
sscanf
(PHP 4 >= 4.0.1, PHP 5, PHP 7)
sscanf — 根据指定格式解析输入的字符
说明
这个函数 sscanf() 输入类似
printf()。 sscanf()
读取字符串str
然后根据指定格式format
解析, 格式的描述文档见 sprintf()。
指定的格式字符串中的任意空白匹配输入字符串的任意空白.也就是说即使是格式字符串中的一个制表符 \t 也能匹配输入 字符串中的一个单一空格字符
参数
str
- 将要被解析的 字符串.
format
- The interpreted format for 解析
str
的格式, 除了以下不同外,其余的见 sprintf()的描述文档:
- 函数不区分语言地区
F
,g
,G
和b
不被支持.D
表示十进制数字.i
stands for integer with base detection.n
代表目前已经处理的字符数。s
遇到任意空格字符时停止读取。
...
- 可以选参数将以引用方式传入,它们的值将被设置为解析匹配的值
返回值
如果仅传入了两个参数给这个函数,解析后将返回一个数组,否则,如果可选参数被传入,这个函数将返回被设置了值的个数
如果format
存在的子字符串比
str
内可用的多,
-1
将被返回.
范例
Example #1 sscanf() 例子
<?php// getting the serial numberlist($serial) = sscanf("SN/2350001", "SN/%d");// and the date of manufacturing$mandate = "January 01 2000";list($month, $day, $year) = sscanf($mandate, "%s %d %d");echo "Item $serial was manufactured on: $year-" . substr($month, 0, 3) . "-$day\n";?>
If optional parameters are passed, the function will return the number of assigned values.
Example #2 sscanf() - using optional parameters
<?php// get author info and generate DocBook entry$auth = "24\tLewis Carroll";$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);echo "<author id='$id'> <firstname>$first</firstname> <surname>$last</surname></author>\n";?>