PHP sscanf()関数

PHP String リファレンスマニュアル

例

Parse a string:

<?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 が含まれます。

関連関数:

  • printf()- フォーマット済み文字列を出力する
  • sprintf()- フォーマット済み文字列を変数に書き込む

構文

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

パラメータ 説明
string 必須。読み取る文字列を指定します。
format 必須。使用する形式(フォーマット)を指定します。

可能な形式値:

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

追加の形式値。% と文字の間に配置する必要があります(例: %.2f):

  • + (数値の前に + または - を付けて、数値の正負を定義します。デフォルトでは、負の数のみがマークされ、正の数はマークされません)
  • ' (パディングとして使用するものを指定します。デフォルトはスペースです。幅指定子と一緒に使用する必要があります。例: %'x20s(パディングとして "x" を使用))
  • - (変数の値を左詰めにする)
  • [0-9] (変数値の最小幅を指定)
  • .[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 String リファレンスマニュアル その他の拡張