goo blog サービス終了のお知らせ 

毎日漫然な愚者

少ない時間で挑むGNO2とモンハン日記ばかり?

PHP preg関数でのバックスラッシュについて

2010-03-21 13:14:53 | PHP
preg関数でバックスラッシュを処理する際に軽くはまったので備忘録。


■やりたい事

'.()/\'にバックスラッシュを追加

■perlの場合

$target =~ s/([.()\/\\])/\\$1/

■PHPの場合

$target = preg_replace('/([.()\/\\\\])/','\\\\$1',$target)



なににはまったのかというと、
\\\\とバックスラッシュが4つ必要なこと。

なんでこんな構文なのかについては、
ここで知ったのだが、
簡単にいうと、
PHPが文字列リテラル→正規表現の順で2重評価をしているため
ということ。

…確かにバッドノウハウ(BK)だわ。



最新の画像もっと見る