Linux」カテゴリーアーカイブ

Inkscape Output CMYK

outputpro_extension_i

概要

Inkscape は標準でCMYKに対応していません。RGBからCMYKに変換するにはGimpのプラグインを使ったり、Scribusで変換させたり、ウェブサービスで変換する方法があります。印刷などで業者に依頼する場合は、殆どの場合CMYKでの入稿です。RGBで入稿できるところもあるかもしれませんが、業者さんで変換されています。Windowsには対応していないのですが、Linuxで動くCMYKで出力できるエクステンションがあるので紹介します。

追記 2012/07/03

Windowsでも変換可能なエクステンションもあります。ImageMagickもインストールする必要がありますが、これについてはまた気が向いた時に書きます。

続きを読む

PHP get_browser() ユーザのブラウザの機能を取得

概要

標準では使えないget_browser()関数を使うために、browscap.iniファイルをダウンロードし、php.iniの設定を行う。

最近ボットのアクセス頻度が多くなったため、ボット判定のために何かないかなと思っていたところ、この関数を見つけたのでメモ。

参考URL

PHPマニュアル

ダウンロード

browscap.ini
ここからphpのものをDLする。
/etc/php.d/browscap.ini
に配置する。

どこか適当な場所に配置する。

設定

/etc/php.ini
browscap = /etc/php.d/browscap.ini
browscap = 配置したパス
※httpdの再起動
/etc/rc.d/init.d/httpd restart

ファイルの更新

browscap.ini は PHP にはバンドルされていません。 しかし、ここで最新の » php_browscap.ini を入手することができます。

browscap.ini は多くのブラウザに関する情報をもっていますが、 データベースを最新に保つのはユーザーによる更新に依存しています。 ファイルのフォーマット自体を見ればおおよそのことがわかります。

上記のようにマニュアルに書いてある。
i.e.古くなったら自分で更新してねってこと。。。

You shall not mirror the files without prior authorization.

※自動化すると、アクセスを拒否されるおそれがあるのでしないほうがいいです。

[訂正]自動化するのはOKだけど、24時間以内に10回以上のアクセスをすると、アクセス制限がかけられます。

403-6 Errorが表示されたので、google先生に翻訳の相談をしながら、問い合せてみました。
つくったShellをテストするために何度か実行したら上のエラーが表示されたとういうのは内緒。。。

Bot判定のサンプル

	// member var
	public $_bots = array(
	    'Googlebot',
	    'bingbot',
	    'NHN Corp',
	    'MLBot',
	    'SurveyBot',
	);

	// method
	/**
	 * Botを判定する
	 * @return boolean
	 */
	function isBot($isBrowsercap = true, $ua = null){
		if($isBrowsercap == true){
			$browser = get_browser(null, true);
			if($browser['crawler'] == true){
				return true;
			}
		}
		if ($ua == null) {
			$ua = $_SERVER['HTTP_USER_AGENT'];
		}
		$botlist = "/(" . implode("|", $this->_bots) . ")/";
		if (preg_match($botlist, $ua)) {
			return true;
		}
		return false;
	}

get_browserを使った場合でも弾けなかったものを、自分で追加して弾くようにする。

判定方法

判定方法は、ipアドレスではなく、User Agentからキーワードが含まれていないかを検索することにした。
なぜなら、ipアドレスの管理は大変だから。。。
使われていたものが急に使われなくなったり、使われていなかったものが急に使われたりするようになることもあるから。