在线文档教程
PHP

sscanf

sscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

sscanf - 根据格式解析字符串的输入

描述

mixed sscanf ( string $str , string $format [, mixed &$... ] )

函数sscanf()是printf()的输入模拟。 sscanf()从字符串str中读取并根据指定的格式进行解释,这在sprintf()的文档中有描述。

格式字符串中的任何空格都与输入字符串中的任何空格匹配。这意味着即使格式字符串中的tab也可以匹配输入字符串中的单个空格字符。

参数

str

输入的字符串正在被解析。

format

str的解释格式,在sprintf()的文档中有描述,但有以下区别:

  • 功能不是区域意识。

  • FgGb不受支持。

  • D 代表十进制数。

  • i 代表带有基本检测的整数。

  • n 代表到目前为止处理的字符数。

  • s 停止阅读任何空白字符。

...

可以通过引用传递变量,该变量将包含分析的值。

返回值

如果只有两个参数传递给此函数,则解析的值将作为数组返回。否则,如果传递了可选参数,该函数将返回分配值的数量。可选参数必须通过引用传递。

如果格式中有更多的子字符串比str中的可用字符串更多,则返回-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"; ?>

如果传递可选参数,则该函数将返回分配值的数量。

示例#2 sscanf() - 使用可选参数

<?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"; ?>

扩展内容

  • fscanf() - 根据格式解析文件的输入

  • printf() - 输出格式化的字符串

  • sprintf() - 返回格式化的字符串

← sprintf

str_getcsv →