関数・クラス解説
mb_ereg_replace_callback
version:PHP 5 >= 5.4.1, PHP 7 (公式)マルチバイト文字列にコールバック関数を用いた正規表現による置換を行う
公式リファレンス
書式
mb_ereg_replace_callback ( string $pattern , callable $callback , string $string [, string $option = "msr" ] ) : string
説明
stringから patternにマッチする文字列を検索し、 一致した文字列をcallback関数の出力で置換します。
この関数の動作はmb_ereg_replace()とほぼ同じですが、 replacementパラメータの代わりに callbackを指定するところが異なります。
パラメータ
- pattern
- 正規表現パターン。 patternではマルチバイト文字列を使用可能です。
- callback
- コールバック関数で、 subject文字列で一致した要素を配列で 指定してコールされます。 このコールバック関数は、置換した文字列を返す必要があります。 しばしば、 mb_ereg_replace_callback()の callback関数が必要となるのは一度だけである 場合があります。 この場合、 mb_ereg_replace_callback()をコールする際の コールバックに 匿名関数 を使用することができます。 このようにすることで、 コールに関する全ての情報を一つの場所に集約し、 他のどこでも使用されないコールバック関数の名前を 関数の名前空間にばらまかないですみます。
- string
- チェックされるstring。
- option
- 検索オプション。説明は、mb_regex_set_options() を参照してください。
返値
成功した際に string、 そうでない場合はエラー時に FALSE を 返します。
注意
注意: 内部エンコーディングあるいはmb_regex_encoding() で指定した文字エンコーディングを、この関数の文字エンコーディングとして使用します。
サンプル
例1 mb_ereg_replace_callback() の例
// this text was used in 2002
// we want to get this up to date for 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
// the callback function
function next_year($matches)
{
// as usual: $matches[0] is the complete match
// $matches[1] the match for the first subpattern
// enclosed in '(...)' and so on
return $matches[1].($matches[2]+1);
}
echo mb_ereg_replace_callback(
"(\d{2}/\d{2}/)(\d{4})",
"next_year",
$text);
上の例の出力は以下となります。
April fools day is 04/01/2003
Last christmas was 12/24/2002
例2 PHP 5.3.0以降でサポートされる匿名関数を使用したmb_ereg_replace_callback()の例
// this text was used in 2002
// we want to get this up to date for 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
echo mb_ereg_replace_callback(
"(\d{2}/\d{2}/)(\d{4})",
function ($matches) {
return $matches[1].($matches[2]+1);
},
$text);
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール