PHP5のpreg_match()でURLチェック
※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい
2008-06-27
PHP5 だからといって特別なことは何もありませんが、Google のキャッシュページからの JavaScript 経由のアクセスを除外しようと preg_match() を使ってみました。preg が ereg より高速っていうのは有名な話ですが、正規表現はなるべく多くのアクセスがくるところでは使いたくないところです。他に方法あるかな?
今回は、アクセスしてきた URL が、特定の文字列から始まっているかどうかを判定してるので単純です。サイトからは JavaScript 使ってアクセス情報をもらっているので、サーバ環境変数($_SERVER)のリファラーがアクセスした URL になります。
$url = $_SERVER["HTTP_REFERER"];
if (!preg_match("/^http:\/\/pakapaka.jp\//", $url)) {
// とりあえずログに残す
(省略)
exit();
}
関連記事
上記の記事に関連する記事(最新の10件)です。


