preg_replace_callback 正規表現検索を行い、コールバック関数を使用して置換を行う &reftitle.description; stringarraynullpreg_replace_callback stringarraypattern callablecallback stringarraysubject intlimit-1 intcount&null; intflags0 この関数の動作は、ほぼ preg_replace と同じですが、 replacement の代わりに callback を指定するところが異なります。 &reftitle.parameters; pattern 検索するパターン。 文字列あるいは文字列の配列のいずれかとなります。 callback このコールバック関数は、検索対象文字列でマッチした要素の配列が指定されて コールされます。このコールバック関数は、置換後の文字列を返す必要があります。 コールバックのシグネチャは、次のとおりです。 stringhandler arraymatches preg_replace_callback 用の callback 関数が、 ひとつの場所だけで必要となることがあります。 そんな場合は、 無名関数 を使って宣言した無名関数を preg_replace_callback のコール時に使用します。 このようにすることにより、コールに関するすべての情報を 1 ヶ所に集め、 他の場所で使用されないコールバック関数名で関数の名前空間を 汚染しないようにすることができます。 <function>preg_replace_callback</function> と無名関数 \s*\w|', function ($matches) { return strtolower($matches[0]); }, $line ); echo $line; } fclose($fp); ?> ]]> subject 文字列あるいは文字列の配列で、 検索および置換の対象となる文字列を指定します。 limit subject 文字列における 各パターンの最大置換回数。デフォルトは -1 (無制限) です。 count 指定した場合は、置換を行った回数がここに格納されます。 flags flags には、 PREG_OFFSET_CAPTUREPREG_UNMATCHED_AS_NULL の組み合わせが指定できます。 これは matches 配列のフォーマットに影響します。 詳細は preg_match 関数の説明を参照ください。 &reftitle.returnvalues; preg_replace_callback は、 subject が配列の場合には配列を、 それ以外の場合は文字列を返します。 エラー時の戻り値は &null; となります。 マッチするものが見つかった場合は新しい subject を返し、それ以外の場合はもとの subject をそのまま返します。 &reftitle.errors; &pcre.pattern.warning; &reftitle.changelog; &Version; &Description; 7.4.0 パラメータ flags が追加されました。 &reftitle.examples; <function>preg_replace_callback</function> の例 ]]> &example.outputs; カプセル化された BB code を処理するための、 <function>preg_replace_callback</function> での再帰構造の使用 '.$input[1].''; } return preg_replace_callback($regex, 'parseTagsRecursive', $input); } $output = parseTagsRecursive($input); echo $output; ?> ]]> &reftitle.seealso; PCRE のパターン preg_replace_callback_array preg_quote preg_replace preg_last_error 無名関数