携帯振り分け

2009-02-13 (金)カテゴリPHP , 制作タグ

厳密に携帯の機種毎に飛ばすページを変えたい場合や、特定の機種だけを別ページにしたい場合のプログラムを書いてみた。
誰でも追加・変更しやすいよう、CSVファイルを更新すればオッケー。

クラスにまとめたので、トップページのphp等の最初にrequire_onceなどで読み込んであげれば動作します。

PHP
//CSVファイル場所を指定する場合は以下にパス記述
define(SETPATH,"");

class mobile_divergence {

var $ua;
var $url = "mobile_list.csv";

//_constract
function mobile_divergence($url=false){
	$this->ua = $_SERVER['HTTP_USER_AGENT'];
	if($url) $this->url	= $url;
	$this->loadcsv();
}
function loadcsv(){
	if($this->is_url($this->url)){
		$datas = file($this->url);
	} else {
		$datas = file_get_contents($this->url);
	}
	return $this->Jumping($datas);
}
function Jumping($d){
	for ($i=0;$i<sizeof($d);$i++){
		$csvdatas[$i] = split(",",$d[$i]);
		if(strstr($this->ua,$csvdatas[$i][0])) header('location: '.$csvdatas[$i][1]);
	}
}
function is_url($text){
	return (!preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $text)) ? TRUE : FALSE ;
}

}
$mobileObj = new mobile_divergence(SETPATH);

file_get_contents関数部分はテストしていないので、動作しないかも…

http://~からの絶対パスで書くと、そっちが動くはずです。設定ファイルは必ず同じ箇所から判定ファイルをダウンロードする感じにも出来る。

ちなみにCSVの中身は
「ユーザーエージェント(一部)」、「移動先URL」

ユーザーエージェントは各キャリアのサイトに記載されていますので、ご確認を。


SEOの件書いたら、次の日に3位まであがって、現在、8位転落…
んーようわからん。analytics入れなくちゃね。。

ヨメが最近買った漫画。小心者で漫画家の旦那とステキ?変?な奥様のお話。ゆる~~い感じ。

コメントをする

http://mizoochi.com/archives/463.html/trackback