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

sscanf( string $str, string $format[, mixed &$... ] )は、フォーマット「$format」に基づき、文字列「$str」をパース(構文解析)し、値を抽出する組み込み関数。

定義

多様な型 sscanf( 文字列型 $str, 文字列型 $format[, 多様な型 &$...] );

パラメータ

文字列型 $str

パース(構文解析)したい文字列。

文字列型 $format

フォーマット。

多様な型 $…

オプション。

変数を指定すると、フォーマットに基づくパース(構文解析)で抽出した値を、変数に代入できる。

変数は、カンマ,で区切り、複数指定できる。

フォーマット

フォーマットに関する詳しい解説は、printf()のページのフォーマットの項目にて。

構文

フォーマットに基づき、文字列をパースし、配列に格納

配列 = sscanf( 文字列, フォーマット );

「フォーマット」に基づき、「文字列」をパース(構文解析)し、値を抽出した値を、配列に格納し返す。

フォーマットに基づき、文字列をパースし、変数に代入

sscanf( 文字列, フォーマット, 変数1, 変数2, 変数3 );

「フォーマット」に基づき、「文字列」をパース(構文解析)し、値を抽出した値を、「変数1~3」に代入。

戻り値

「多様な型 &$…」のパラメータを指定しない場合、フォーマットに基づくパース(構文解析)で抽出した値を、配列に格納し返す。

「多様な型 &$…」のパラメータに変数を指定した場合、フォーマットに基づくパース(構文解析)で抽出した値を、変数に代入できる。

パース(構文解析)に失敗すると、「-1」を返す。

サンプル

日付(YYYY年MM月DD日)をパース

<?php
$varDate = "2012年7月3日";
$format = '%d年%d月%d日';
list( $varYear, $varMonth, $varDay ) = sscanf( $varDate, $format );
echo "年: $varYear<br />";
echo "月: $varMonth<br />";
echo "日: $varDay<br />";
?>

↓↓↓出力結果↓↓↓

年: 2012
月: 7
日: 3

日付(YYYY年MM月DD日)をパースし、変数に代入

<?php
$varDate = "2012年7月3日";
$format = '%d年%d月%d日';
sscanf( $varDate, $format, $varYear, $varMonth, $varDay );
echo "年: $varYear<br />";
echo "月: $varMonth<br />";
echo "日: $varDay<br />";
?>

↓↓↓出力結果↓↓↓

年: 2012
月: 7
日: 3

日付(YYYYMMDD)をパース

<?php
$varDate = "20120703";
$format = '%4d%2d%2d';
list( $varYear, $varMonth, $varDay ) = sscanf( $varDate, $format );
echo "年: $varYear<br />";
echo "月: $varMonth<br />";
echo "日: $varDay<br />";
?>

↓↓↓出力結果↓↓↓

年: 2012
月: 7
日: 3

日付(MM-DD-YYYY)をパース

<?php
$varDate = "07-03-2012";
$format = '%2$d-%3$d-%1$d';
list( $varYear, $varMonth, $varDay ) = sscanf( $varDate, $format );
echo "年: $varYear<br />";
echo "月: $varMonth<br />";
echo "日: $varDay<br />";
?>

↓↓↓出力結果↓↓↓

年: 2012
月: 7
日: 3

空白区切りの文字列をパース

<?php
$varData = "東京 2012 07 03";
$format = '%s %s %s %s';
sscanf( $varData, $format, $varPlace, $varYear, $varMonth, $varDay );
echo "場所: $varPlace<br />";
echo "年: $varYear<br />";
echo "月: $varMonth<br />";
echo "日: $varDay<br />";
?>

↓↓↓出力結果↓↓↓

場所: 東京
年: 2012
月: 07
日: 03

スポンサード リンク

カテゴリー: PHP, フォーマット, 文字列, 組み込み関数 タグ: パーマリンク