preg_match('/example.com/',$url);
これは$urlにexample.comが含まれることを確認する正規表現だが、
このように、example.comをファイル名に含むファイルを作っておくことで回避できる。
http://wana.com/example.com.php
次に、/dir/test.phpのような、スラッシュで始まるファイルパス参照かどうかを確認する正規表現だが、
preg_match ('/^\//',$url);
このように、スラッシュを2つ連続させ、ネットワークパス参照と呼ばれる形にすることで、すり抜けてしまう。
//wana.com/wana.php
正解はこれ。
preg_match('/^https?:\/\/example.jp\//',$url);
http(s)://example.jp/で始まることをチェックする。
ハットは文字列の最初を表す。
ハテナは直前の一文字の有無を許容する。