sscanf関数

関数 sscanf は、指定されたフォーマットを使用して文字列を分析し、 値を返します。最初のパラメータは解析対象の文字列を受け取り、 2番目のパラメータはフォーマット文字列、そしてその後のパラメータ(オプション)は 解析結果が書き込まれる変数です。

フォーマット文字列では、%記号で始まる特殊文字(フォーマット指定子)が使用され、出力の書式を制御します。

構文

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

フォーマット指定子

指定子 説明
%s 文字列
%d 符号付き整数(10進数)
%u 符号なし整数(10進数)
%f 浮動小数点数(ロケール依存)
%F 浮動小数点数(ロケール非依存)
%c ASCIIコードによる文字
%x 16進数(小文字)
%X 16進数(大文字)
%o 8進数
%b 2進数
%e 科学的記数法(小文字)
%E 科学的記数法(大文字)
%g %eまたは%fの短縮形
%G %Eまたは%Fの短縮形
%% パーセント記号

例

数値とテキストを抽出して文字列を解析します:

php<?php
  $res = sscanf("42 is the answer", "%d is %s");
  print_r($res);
?>

コード実行結果:

php[42, 'the']

例

日付を構成要素に分解します:

php<?php
  $date = "2023-12-31";
  list($year, $month, $day) = sscanf($date, "%d-%d-%d");
  echo "Year: $year, Month: $month, Day: $day";
?>

コード実行結果:

php'Year: 2023, Month: 12, Day: 31'

関連項目

  • フォーマットされた文字列を出力する関数 printf
  • 区切り文字で文字列を分割する関数 explode