sscanf関数
関数 sscanf は、指定されたフォーマットを使用して文字列を分析し、
値を返します。最初のパラメータは解析対象の文字列を受け取り、
2番目のパラメータはフォーマット文字列、そしてその後のパラメータ(オプション)は
解析結果が書き込まれる変数です。
フォーマット文字列では、%記号で始まる特殊文字(フォーマット指定子)が使用され、出力の書式を制御します。
構文
sscanf(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
$res = sscanf("42 is the answer", "%d is %s");
print_r($res);
?>
コード実行結果:
[42, 'the']
例
日付を構成要素に分解します:
<?php
$date = "2023-12-31";
list($year, $month, $day) = sscanf($date, "%d-%d-%d");
echo "Year: $year, Month: $month, Day: $day";
?>
コード実行結果:
'Year: 2023, Month: 12, Day: 31'