携帯版Google AnalyticsのPHPコードを貼り付けるとエラーが発生する

2010年4月23日現在、Googleからはこんなコードを紹介される。
<?php
// Copyright 2009 Google Inc. All Rights Reserved.
$GA_ACCOUNT = "XX-0000000-0";
$GA_PIXEL = "/ga.php";

function googleAnalyticsGetImageUrl() {
	global $GA_ACCOUNT, $GA_PIXEL;
	$url = "";
	$url .= $GA_PIXEL . "?";
	$url .= "utmac=" . $GA_ACCOUNT;
	$url .= "&utmn=" . rand(0, 0x7fffffff);
	$referer = $_SERVER["HTTP_REFERER"];
	$query = $_SERVER["QUERY_STRING"];
	$path = $_SERVER["REQUEST_URI"];
	if (empty($referer)) {
		$referer = "-";
	}
	$url .= "&utmr=" . urlencode($referer);
	if (!empty($path)) {
		$url .= "&utmp=" . urlencode($path);
	}
	$url .= "&guid=ON";
	return str_replace("&", "&amp;", $url);
}
?>

んで、$_SERVER["HTTP_REFERER"]が無かったりすると、
Notice: Undefined index: HTTP_REFERER...

という感じになる。
まあ、そうだよね。

なので、こんな感じにしておいてあげる。
<?php
// Copyright 2009 Google Inc. All Rights Reserved.
$GA_ACCOUNT = "XX-0000000-0";
$GA_PIXEL = "/ga.php";

function googleAnalyticsGetImageUrl() {
	global $GA_ACCOUNT, $GA_PIXEL;
	$url = "";
	$url .= $GA_PIXEL . "?";
	$url .= "utmac=" . $GA_ACCOUNT;
	$url .= "&utmn=" . rand(0, 0x7fffffff);
-	$referer = $_SERVER["HTTP_REFERER"];
-	$query = $_SERVER["QUERY_STRING"];
-	$path = $_SERVER["REQUEST_URI"];
+	$referer = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : '';
+	$query = isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : '';
+	$path = isset($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"] : '';
	if (empty($referer)) {
		$referer = "-";
	}
	$url .= "&utmr=" . urlencode($referer);
	if (!empty($path)) {
		$url .= "&utmp=" . urlencode($path);
	}
	$url .= "&guid=ON";
	return str_replace("&", "&amp;", $url);
}
?>

コード見た感じでも2009年からメンテナンスされてないみたいだし、大丈夫なんだろうか。
これも日本独自の携帯事情からなのかしら。
謎。

SimplePie1.2で特定のRSSフィード(Wordpressとか)のみエラーになってしまう件

昨日からずーっと追いかけていてようやくわかりました。

■参考になったサイト
CakePHPを本気で勉強: SimplePieのバグ?

■原因
urlエンコードが正しく行われていないのか、RSSフィードのURLがおかしく変換されてしまってるのが原因。
「?」付きのURLだととりあえずアウト。
Wordpressは「?」とかついちゃうので、もちろんアウト。
Movable Typeなら良いんだろうな。

■対策
・フィードのURLをurlエンコードに影響を受けないものにする
・SimplePieのバージョンを下げる→1.1.3だと動いた
・SimplePieのソースに手を加える

■結論
simplexml関数で自分で書く!

以上!

phpMyAdminのタイムアウト時間を伸ばしたい

ローカルの開発環境サーバはタイムアウトなんてしなくても良いのです。
ということで、参考サイトを元に設定。

参考サイト
phpMyAdminのタイムアウト時間変更|HyDEV ~ハイデブ~

#config.ini.php

ini_set("session.gc_maxlifetime", 86400);
$cfg['LoginCookieValidity'] = 86400;


とりあえず丸1日にしておいた。
参考サイトのおかげで直ぐに対応出来ました。

「書籍『PHP逆引きレシピ』をプレゼント!」キャンペーン実施中です

現在、「書籍『PHP逆引きレシピ』をプレゼント!」キャンペーンが実施中です。

この本の紹介や、キャンペーンの紹介をすると、3名の方に本をプレゼント!ってことらしいです。
僕も是非欲しいので、このブログで紹介させて貰います。

なんとこの本は、名古屋の人達で作られているんですよね、それにまずビックリ。
良く勉強会で顔を合わせる人達の名前がこうやって世に出るなんて、なんだか凄いなーと思いました。

あと、ちなみにPHPの本確か1冊も持ってないんですよね・・・。
まあ、それだけネット上の情報がたくさんあるってことなんでしょうが、それもどうかなーと。

ということで、キャンペーンに当たるかどうかわかりませんが、当たったらこのブログで報告したいと思います!
10月31日締め切りということなので、「私も欲しい!!」って人は宣伝しちゃいましょう!

PHP カンファレンス 2009(2日目)に行ってきました

昨日に引き続きPHPカンファレンスに参加してきました。
2日目の今日はテックデイということで、幾分か昨日よりはカジュアルな印象。

今日のプレゼンの内容もUstreamでストリーム中継されていたので、詳しくはそちらで。
PHP カンファレンス 2009

では簡単な感想を。


■台湾PHPコミュニティの日々
台湾のPHPユーザーグループの方が、日本でプレゼンするなんてなんだか凄いなと思った。
欧米の人を呼ぶことは良く耳にするけど、もっと地理的に近い外国の人々と交流しても良いのかなと思った。
中国語でのプレゼンというのが凄く新鮮。
同時通訳の人を用意しておくなんて、すごいなーと。
個人的には大学時代に勉強していた中国語は全く役に立たず、ところどころ単語がわかる程度でちと残念。
台湾も日本の状況と良く似ていて、もはやネットのトレンドに地域性ってのもあまり無いのかなと思った。
ただ、国内の仕事は少なく国外又は大陸(中国)の仕事が多いというのが印象的、日本も国外に目を向けていかないとなと。
あとハードウエアは「世界の王様」と言っていたのも印象的、やはり自信があるんだなあ。

■APCによるハイパフォーマンスの実現
次はアメリカの人の発表。
APCがどこをキャッシングして、スピードアップを実現しているかという技術面の説明が非常に難しくちょっとついていけなかった。
プレゼンソフトがちょっと初めてみる感じで凄く新鮮!
APC利用者はまだまだ少ない感じ、その為質疑応答も実用的な質問はあまり出なかった。
とにかく「簡単に!すぐに実感できる!フレームワークのようなPHPのコードが多いものは特に実感しやすい!」とのことだったので、一度試してみたいと思った。
PHP6.x以降には本体に取り込まれるらしい、こりゃすげー。

■PHPを見える化する
発表が始まるまで発表者をTwitterでフォローしているのを知らなかった・・・。
プレゼンは非常にわかりやすかった。
Xdebugというエクステンションといろんなソフトを組み合わせることによって、PHPがどのように動いているかを「見える化」出来るんだなと感心した。
どのファイルがボトルネックになっているのかも、非常にわかりやすい感じだった。

■CakePHPストーリー
CakePHPは盛り上がっているし、どんどん盛り上がっていくよという話。
特別珍しい情報は無い感じ。
海外のカンファレンス?の様子が紹介されていて、とても新鮮だった。
アルゼンチン人とノルウェー人とドイツ人が一つの事を語り合うなんてなんだか凄いなと。
折角ある程度わかってきたので、今後も追っていきたいな。

■PHP を「いじり」倒す 10 の方法
PHPの日本人コミッターの人の話。
さすがコミッター、関数追加するとかそんな話。
めちゃくちゃ難しかったし、ちょっと発表者の声が聞き取りにくくて聴いているのが辛かった・・・。
PHPの言語使用が気に入らないなら、素直にRubyを使う気がするな・・・。

■Q4MとFlareを使ってスケーラブルなサービスを作る!
Q4MというMySQLのプラグイン?とFlareというキャッシュ関連のソフトの紹介。
ちょっと声が聞き取りにくくて良くわからなかった感じ。
けど、二つともパフォーマンスを向上される有効手段になりそう。
是非試してみたいと思った。

■Symfony, a web framework for professional websites
これまた外国の人の発表、今回はフランスの方かな?
SymfonyはMojaviの流れを汲んでいるということなので、一度見てみたい。
とにかく便利くさいし、サポートルールがしっかりしている印象。
もうCakePHPとZFの3つ巴だな、当分。
もうすぐ日本語の書籍が出るらしいので、楽しみ。
Symfonyも日本でカンファレンスをやりたいとか、もう凄いとしか言いようが無い。

■LT:Tokyo Tyrant + PHP
早過ぎて良くわからなかったなー。
Tokyo TyrantというのをPHPから使うためのライブラリらしい。

■LT:phpall:PHPの全バージョンの挙動を試す
これやっている人ほとんど居ないと思う、やろうと思うところが凄い。
プレゼンの仕方が投げやり風で面白かった。
才能ある若者が多いなあ。

■LT:PHP4の現状とセキュリティパッチサービス
サポートが終わったPHP4のセキュリティパッチをお仕事にしている人の発表。
需要はあるだろうな。

■LT:クラウド対応型フレームワーク「Monocheros」
良くわからなかった。

■LT:初めてのPHP Extension
時間が足りないことを見越して、肝心なところは省略というネタだった。


いやー振り返ってみると内容が濃いなあ。
名古屋でこれだけの濃い内容の勉強会やカンファレンスをやるのはちょっと難しいのかもしれない。
もうPHPを使って・・・という話よりも、PHP自体に手を入れて・・・みたいが話が多かったし。
来ている人達はもっとライトユーザーな感じがしたので、ちょっとギャップは感じたかな。
もともとPHPはコアユーザーを作りにくい言語でもあると思うし。
あと、PHP5.2を使っている人がほとんどっていうのも、なんだか納得できなかった。
多分みんないちいちコンパイルして導入して・・・なんてやっていない気がするんだけど・・・。
レンタルサーバの人が多いのかな?

けど、Ruby会議も名古屋でやるし、CakePHPカンファレンスという1フレームワークのカンファレンスに100人以上の人が参加するぐらいなんだし、名古屋でやっても結構盛り上がりそうだけどなあ。
まあ、PHP勉強会!みたいな、コミュニティがそもそもないので難しいのかな。

結構Disられたり下げずんだりされているPHPだけど、なんだかんだ愛されているんだなと思った2日間だった。
こうやって実際に足を運ぶことにどれだけの意味があるのかわからないけど、何かしら意味があると良いな。
名古屋から来ている人で2日間全部聴いた人も少ないと思うので。

関係者の皆様本当にお疲れ様でした!
いやーすばらしかった!!
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 次のページ ≫ 1 of 9

アーカイブ

2010

2009

2008

2007

コンタクト

longkey1[at]gmail[dot]com