PHP2009/10/27マッチー
正規表現で文字列検索を行いたいときにpreg_matchを使うことがある。
このpreg_match、検索対象の文字列が1行なら特に問題ないのだけど、複数行にまたがるようなときは、上記の書き方だと上手く結果を返してくれない。
file_get_contentsなどでファイルの情報を取得し、さらにその中の一部の情報を取得したいようなとき、1行だけしか検索できないと、都合が悪いことがある。
例えばsample.htmlに上のようなコードがあり、そこを丸々取得したいとする。
上記の書き方だと、こんな結果が返ってきてしまう。
そういうときは、デリミタの後ろにsをつけると良い。
このsは、改行を無視して1行とみなして検索しますよという意味を持つらしい。つまり<div>~</div>を1行とみなしてくれるから、ちゃんと検索結果が返ってくる。