Authentication




Cancel OK
B!コメントする  2013-02-22 15:22:00 by old

PHPで正規表現を使う際の注意点

日々というわけではないですがPHPもバージョンが上がっています。
より早く、より安全にというとちょっと違うかもしれませんが進歩してます。
正規表現を調べる上で古い情報が良く出てくるのでPHPのバージョンも含めて注意点を少し。

PHPで正規表現を使う場合は何かにマッチさせて、マッチした部分を取り出したり入れ替えたり切り離したりと色々とあります。
実際に使われるものに

pregreplace()
preg
match()


などがあります。
古いサイトだと「ereg」系でのサンプルなどがありますが、ereg系はPHP5.3.0から非推奨となっています。
ereg系とpreg系の違いは正規表現の手法の違いですが、詳しいことはこちらを参照してもらえればわかると思います。

http://php.net/manual/ja/reference.pcre.pattern.posix.php

ですので正規表現を使う場合は「preg」系を使いましょうということが1つ。

次に正規表現で使うオプションというかパターン修飾子について。
パターン修飾子についても非推奨が出ています。

詳しくはこっちを参照してください。

http://php.net/manual/ja/reference.pcre.pattern.modifiers.php

この辺は文字コードやセキュリティ的な要因がいろいろとあるようです。
この修飾子はあまり見かけないうえにpreg_replace()に限定されていますが知らないと罠にハマる可能性もあるので覚えておいた方がいいかもしれまえせん。

自分は使ってなくても他の人が使っていたり、使えるコードをWebからコピペしたときにこれが混じっていることもあるかと思います。

ちなみにPHP5.3.xで推奨されないものはほかにもあるので下記を一読しておくと、あとあと何かの役に立つこともあるかもしれません。

http://php.net/manual/ja/migration53.deprecated.php



PHP  

  • コメント
  • コメントはまだありません