関数・クラス解説

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);

参考

  • mb_regex_encoding() - 現在のマルチバイト正規表現用のエンコーディングを取得または設定する
  • mb_ereg_replace() - マルチバイト文字列に正規表現による置換を行う
  • 匿名関数
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール