(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
sscanf — 根據(jù)指定格式解析輸入的字符
這個(gè)函數(shù) sscanf() 輸入類似
printf()。 sscanf()
讀取字符串str
然后根據(jù)指定格式format
解析, 格式的描述文檔見 sprintf()。
指定的格式字符串中的任意空白匹配輸入字符串的任意空白.也就是說(shuō)即使是格式字符串中的一個(gè)制表符 \t 也能匹配輸入 字符串中的一個(gè)單一空格字符
str
將要被解析的 字符串.
format
The interpreted format for 解析str
的格式, 除了以下不同外,其余的見
sprintf()的描述文檔:
F
, g
, G
和
b
不被支持.
D
表示十進(jìn)制數(shù)字.
i
stands for integer with base detection.
n
代表目前已經(jīng)處理的字符數(shù)。
s
遇到任意空格字符時(shí)停止讀取。
...
可以選參數(shù)將以引用方式傳入,它們的值將被設(shè)置為解析匹配的值
如果僅傳入了兩個(gè)參數(shù)給這個(gè)函數(shù),解析后將返回一個(gè)數(shù)組,否則,如果可選參數(shù)被傳入,這個(gè)函數(shù)將返回被設(shè)置了值的個(gè)數(shù)
如果format
存在的子字符串比
str
內(nèi)可用的多,
-1
將被返回.
示例 #1 sscanf() 例子
<?php
// getting the serial number
list($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.
示例 #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";
?>