PHP sscanf() 関数

❮ PHP 文字列リファレンス

文字列をパースします:

<?php
$str = "age:30 weight:60kg";
sscanf($str,"age:%d weight:%dkg",$age,$weight);
// show types and values
var_dump($age,$weight);
?>
例の実行 »

sscanf() 関数は、指定した形式に従って文字列からの入力をパースします。sscanf() 関数は、文字列をフォーマット文字列に基づいて変数にパースします。

この関数にパラメータを2つだけ渡す場合、データは配列として返されます。それ以外の場合、オプションのパラメータを渡すと、 パースデータがその中に格納されます。それを含む変数よりも多くの指定子があると、エラーが発生します。 しかし、変数よりも指定子が少ない場合、余分な変数にはNULLが含まれます。

関連する関数:


構文

sscanf(string,format,arg1,arg2,arg++)

パラメータ 説明
string 必須。読み込む文字列を指定する
format 必須。format to use.

Possible format values:を指定する

  • %% - パーセント記号を返す
  • %c - ASCII値による文字
  • %d - 符号付き10進数(負、ゼロまたは正)
  • %e - 小文字による指数表記 (例: 1.2e+2)
  • %u - 符号なし10進数 (ゼロ以上)
  • %f - 浮動小数点数
  • %o - 8進数
  • %s - 文字列
  • %x - 16進数(小文字)
  • %X - 16進数(大文字)

フォーマットに追加指定できる値。これらは、%と文字の間に置きます (例 %.2f):

  • + (数字の前に + と - の両方を付ける。デフォルトでは、負の数だけがマークされる)
  • ' (パディングとして使用するものを指定する。デフォルトはスペース。幅指定子と共に使用する必要がある。
  • [0-9] (変数の値を1表示するための最小幅を指定する)
  • .[0-9] (小数点以下の桁数または最大文字列長を指定する)

注:複数の追加フォーマット値を使用する場合は、上と同じ順序でなければならない。

arg1 任意。データを格納する最初の変数
arg2 任意。データを格納する2番目の変数
arg++ 任意。データを格納する3番目、4番目などの変数

技術内容
返り値: この関数に渡すパラメータが2つだけの場合、データは配列として返されます。それ以外の場合、オプションのパラメータを渡すと、 パースしたデータがその中に格納されます。変数を含む変数よりも多くの指定子があると、エラーが発生します。しかし、変数よりも指定子が少ない場合、 余分な変数にはNULLが格納されます。
PHP バージョン: 4.0.1+

その他の例

例 1

フォーマット値 %s, %d および %c を使用します:

<?php
$str = "If you divide 4 by 2 you'll get 2";
$format = sscanf($str,"%s %s %s %d %s %d %s %s %c");
print_r($format);
?>
例の実行 »

❮ PHP 文字列リファレンス