PHP eregの落とし穴・エラー [eregについて・eregとは?]

Posted by boukyaku on 03.2008 プログラムの知識   0 comments
  • このエントリーをはてなブックマークに追加
    PHP eregの落とし穴・エラー [eregについて・eregとは?]

    PHP関数 eregは文字列のマッチング検索や置き換えを行う関数です。
    今回は、簡単な使い方と私が陥ったエラー・罠をご紹介します
    [スポンサードリンク]


    ---

    この関数は、いくつか種類がありますが今回は、

    マッチングで用いる
    関数

    で紹介します。

    ereg とは、大文字・小文字の区別をする場合に使用する。
    eregi とは、大文字・小文字の区別をしない場合に使用する。

    書き方:
    ereg(マッチパターン, 対象変数);
    ※一致すれば、True ・ 不一致なら false を返します。

    解説:
    マッチパターンに指定されたものと対象変数を比較してマッチしているかを検索します。


    ---

    私が陥った罠。。。

    csvを配列に格納して、始めの列の数字とマッチングさせていた時のエラー。

    1~40まである数字をマッチング検索させていると・・・
    1の場合19 が 2場合29 が 3場合39 が 4の場合40 で
    マッチしてしまう。

    その他の、5の場合は5でマッチするし、12の場合でも12でマッチする。

    これは、ereg関数が指定されてるマッチパターンが対象変数全体の
    どこかに含まれていればマッチするという仕組みのようで
    仮に1でマッチ検索をすれば1と10~19までがマッチと判断され
    最後にマッチした19がアウトプットされるという感じ。

    だから、4の場合は40がマッチしてしまう。

    仮に120までの数字でマッチ検索させれば、
    12の場合は、120でマッチしてしまう。

    ---

    この様に、ereg関数は、マッチパターンと対象変数を比較し
    そのマッチパターンが対象変数のどこかに入っていればマッチと判断します。

    簡単に言えば、123という数字は、1と2と3として認識されていて
    12でも23でもマッチしてしまうということになる。

    このeregのエラーで困っているのは初心者だけだろうが・・・
    一応紹介してみた。
    関連記事


    • password
    • 管理者にだけ表示を許可する

    スポンサードリンク

    リンク