PEARのCache_Liteを使ってみた

軽量キャッシュライブラリのCache_Liteの使い方です。


//ライブラリの読み込み
include_once('Cache/Lite.php');

//設定
define("CACHE_DIR","./tmp/");
define("CACHE_TIME",300);//5分

//キャッシュのID
$id = 'hoge';
$options = array(
	'cacheDir' => CACHE_DIR,
	'lifeTime' => CACHE_TIME
);

//インスタンス化
$Cache_Lite = new Cache_Lite($options);

if ($data = $Cache_Lite->get($id)) {
	//キャッシュが有効なときの処理
	//$dataに取得すべきデータが格納されている。

} else {
	//キャッシュが無効、存在しないとき
	$url = "http://search.twitter.com/search.json?q=" . urlencode("ぬこ") . "&rpp=100&lang=ja";
	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$search = curl_exec($ch);
	curl_close($ch);

	$Cache_Lite->save($search,$id);//キャッシュを保存
	}
}

キャッシュを手動で消すには、キャッシュの保存されているディレクトリ、(この場合./tmp/)の中身を消すだけで大丈夫です。
TwitterAPIとか回数制限も多いので、使いどころはたくさんあると思います。

PEARのCache_Liteを使ってみたToro_Unit

ユーザーエージェントでブラウザの判別をするPHPとかjQueryを書いてみた。

自分でコピペできるように、browser判別のTipsを貼っておきます。

PHPで判別

function browser_class(){
	$classes = "";
	$agent = getenv( "HTTP_USER_AGENT" );

	if(strstr($agent,"MSIE")){
		$classes .= "msie ";
		if(strstr($agent,"MSIE 6.0")) $classes .= "ie6 lt7 lt8 lt9";
		if(strstr($agent,"MSIE 7.0")) $classes .= "gt6 ie7 lt8 lt9";
		if(strstr($agent,"MSIE 8.0")) $classes .= "gt6 gt7 ie8 lt9";
		if(strstr($agent,"MSIE 9.0")) $classes .= "gt6 gt7 gt8 ie9";
	}
	else {
		$classes .= "noie ";
		if( strstr($agent,"Firefox")) {
			$classes .= "firefox gecko";
		}
		elseif( strstr($agent,"Safari")) {
			$classes .= "safari webkit";
		}
		elseif( strstr($agent,"Chrome")) {
			$classes .= "Chrome webkit";
		}
		elseif( strstr($agent,"Opera")) {
			$classes .= "opera presto";
		}
		//ここからは気休め。
		//AppleWebKit/534.30 (KHTML, like Gecko) なので先に記述
		elseif( stristr($agent,"WebKit")) {
			$classes .= "webkit";
		}
		//AppleWebKit/534.30 (KHTML, like Gecko) なので先に記述
		elseif( stristr($agent,"KHTML")) {
			$classes .= "khtml";
		}
		elseif(stristr($agent,"Gecko")) {
			$classes .= "gecko";
		}else {
			$classes .= "other";
		}
	}
	return $classes;
}

ついでにwordpressのbody_classに追加するなら、

function add_browser_class($classes){
	$classArr = explode(" ",browser_class());
	$return = array_merge($classes,$classArr);
	return $return
}

add_filter("body_class","add_browser_class");

とかやればうまく行ける気がします。

jQueryで判別

参考:
jQuery.supportでのブラウザ判別
http://w3g.jp/blog/tools/jquery_browser_sniffing

jQuery(function($){

	$html = $("html");

	if(!$.support.checkOn && $.support.checkClone){
		$html.addClass("webkit noie");
	}else if($.support.checkOn && $.support.noCloneEvent && window.globalStorage){
		$html.addClass("firefox noie");
	}else if($.support.checkOn && $.support.noCloneEvente && !window.globalStorage){
		$html.addClass("opera noie");
	}else if(!$.support.noCloneEvent && $.support.opacity){
		$html.addClass("gt6 gt7 gt8 ie9 msie");
	}else if(!$.support.opacity){
    	if(!$.support.style){
        	if (typeof document.documentElement.style.maxHeight != "undefined") {
				$html.addClass("gt6 ie7 lt8 lt9 msie");
        	} else {
				$html.addClass("ie6 lt7 lt8 lt9 msie");
        	}
    	}else{
			$html.addClass("gt6 gt7 ie8 lt9 msie");
    	}
	}else{
		$html.addClass("other");
	}
});
ユーザーエージェントでブラウザの判別をするPHPとかjQueryを書いてみた。Toro_Unit

jQuery.uploadでアップロード画像のサムネイルの作成

Ajaxを使ったメールフォームとかってやっぱり素敵ですよね。
以前仕事で写真投稿付きのフォームを作らざるを得なかったので、どうせならということでAjax化しました。
というわけでjQuery.uploadを使って写真をアップロードして、サムネイルを表示するチュートリアルです。

2011-12-03追記:デモ作りました。jQuery.uploadを使ったフォームのデモを作りました。

(続きを読む…)

jQuery.uploadでアップロード画像のサムネイルの作成Toro_Unit

さくらのレンタルサーバーにPHP5.3用のPECLをインストール

Drupal7をいれたときにも書いたのですが、PECL全般に使えそうなので再度まとめです。

さくらのレンタルサーバーはデフォルトのPHPがPHP5.2.17になっています。
コントロールパネルからウェブ領域で動作するPHPのバージョンはPHP5.3.6等に変更することができます。

ですが、コマンドラインで動作するPHPは5.2.17のままなので、PECLを入れるとき若干PHP5.2.17用のものがインストールされてしまうので、PHP5.3用のモジュールをインストールしたときのまとめです。

(続きを読む…)

さくらのレンタルサーバーにPHP5.3用のPECLをインストールToro_Unit

正方形のサムネイルの作成

正方形のサムネイルを作成することって結構よくありますよね。

そんなわけでphp-gdでそれをやるスニペットです。jpg専用にしてありますが、応用範囲は広そうです。

(続きを読む…)

正方形のサムネイルの作成Toro_Unit