例えばPHPのpreg_replace関数でe修飾子を避ける - hnwの日記(情報元のブックマーク数)

メモメモ。とりあえずはPHPは使う予定が無いけど。d:id:hnw:detailのすばらしい検証文書として読んだ

まとめ

  • preg_replaceのe修飾子の挙動がキモい
    • 置換後パターン中の後方参照は勝手にaddslashesされる
    • マッチするパターンによっては利用可能だが、エスケープ地獄の恐れも
  • PHP5.3.0以降ならpreg_replace_callback+無名関数なら比較的読みやすい
  • PHP5.2.x以前ならプライベートメソッドを作ってpreg_replace_callback?
    • create_functionは文字列としてPHPコードを書くので個人的には嫌い
2010-08-15

screenshot