字符串函数

PHP sscanf() 函数

主题:PHP 字符串参考上一页|下一页

说明

sscanf() 函数根据格式解析来自字符串的输入。

sscanf() 函数从字符串中读取并按照指定的格式进行解释,在前面的 sprintf() 函数参考章节中有介绍。

下表总结了该函数的技术细节。

返回值:

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

此外,如果 format 中预期的子字符串多于 string 中可用的子字符串,则将返回 null
版本: PHP 4.0.1+

语法

sscanf() 函数的基本语法如下:

sscanf(string, format, var1, var2, ...);

下面的例子展示了 sscanf() 函数的作用。

<?php
// 示例字符串
$str = "John Carter (26)";

// 解析字符串
sscanf($str, "%s %s (%d)", $first, $last, $age);
echo "$first $last is a $age year old man.";
?>

参数

sscanf() 函数接受以下参数。

参数 说明
string 必填。 指定要解析的字符串。
format

必填。 指定字符串的解释格式,在之前的 sprintf() 函数参考章节中有描述,区别如下:

  • 函数不支持区域设置。
  • F, g, Gb 不支持
  • D 代表十进制数。
  • i 代表带碱基检测的整数。
  • n 代表目前处理的字符数。
  • s 在任何空白字符处停止读取。
var1, var2, ... 可选。 指定将包含解析值的变量。

更多示例

这里有更多示例展示了 sscanf() 函数的实际工作原理:

在以下示例中,解析后的值将作为数组返回。

<?php
// 示例字符串
$date = "January 15 2021";

// 解析字符串
$result = sscanf($date, "%s %d %d");
print_r($result);
?>

以下示例显示如何从十六进制颜色值中获取等效的整数 rgb 值。

<?php
// 十六进制颜色代码示例
$hex = "#ff8800";

// 解析字符串并获取 rgb 值
list($s, $r, $g, $b) = sscanf($hex, "%1s%2x%2x%2x");
echo "<p style='background: rgb($r, $g, $b, 0.5)'>Alpha transparency<p>";
?>
Advertisements