月別アーカイブ: 2013年7月

var_dumpよりログ作成に便利なvar_export

PHPで変数をダンプしたいとき

PHPでプログラムを書いていて、処理の一時点での変数の値を参照したいとき。通常であれば、var_dumpやprint_rなどの関数を使います。

$ar = array(
array(1,"愛媛県",array("県庁所在地" => "松山","名物" => "みかん")),
array(2,"香川県",array("県庁所在地" => "高松","名物" => "うどん"))
);
 
//var_dumpの場合
var_dump($ar);
//標準出力への出力結果
array(2) { [0]=> array(3) { [0]=> int(1) [1]=> string(9) "愛媛県" [2]=> array(2) { ["県庁所在地"]=> string(6) "松山" ["名物"]=> string(9) "みかん" } } [1]=> array(3) { [0]=> int(2) [1]=> string(9) "香川県" [2]=> array(2) { ["県庁所在地"]=> string(6) "高松" ["名物"]=> string(9) "うどん" } } }
 
//print_rの場合
print_r($ar);
//標準出力への出力結果
Array ( [0] => Array ( [0] => 1 [1] => 愛媛県 [2] => Array ( [県庁所在地] => 松山 [名物] => みかん ) ) [1] => Array ( [0] => 2 [1] => 香川県 [2] => Array ( [県庁所在地] => 高松 [名物] => うどん ) ) )

var_dumpとprint_rの違いについては、print_rの方が変数を見やすく出力してくれるという説明がされています。変数型のような余計なものがついていませんが、値の確認程度ならprint_rでも間に合いますね。

変数のダンプ結果を文字列として扱いたいとき

通常のダンプだけでなく、たとえばある時点での変数の値をデータベースに格納したい場合、特定のメールアドレスに送信してログを残したい場合、などは、一度標準出力をob_startとob_get_contentsなどを使ってバッファリングした上でvar_dumpなど行う必要があるように思えます。
それらを一緒くたに、変数を展開して即文字列型にしてしまうのがvar_export関数です。

var_export関数は引数を二つとり、第一引数が文字列に展開する変数、第二引数がブーリアン型で、falseならばそのまま標準出力に出力、trueならば出力はせず、返り値として文字列を返します(デフォルトはfalse)。

$ar = array(
array(1,"愛媛県",array("県庁所在地" => "松山","名物" => "みかん")),
array(2,"香川県",array("県庁所在地" => "高松","名物" => "うどん"))
);
 
//var_export
var_export($ar);
//標準出力への出力結果
array ( 0 => array ( 0 => 1, 1 => '愛媛県', 2 => array ( '県庁所在地' => '松山', '名物' => 'みかん', ), ), 1 => array ( 0 => 2, 1 => '香川県', 2 => array ( '県庁所在地' => '高松', '名物' => 'うどん', ), ), )
 
//var_exportの第二引数にtrueを指定して変数に格納
$return = var_export($ar,true);

var_exportの出力は、print_rと同じように変数型については省略のようですね。また、配列の最後には、次に続く要素が無くてもカンマをつける癖があるみたいです。細部に注意は必要ですが、これでログの作成が容易になります。


PHP5.5のリリースに合わせて、php.netをリニューアルしたそうな

いつも大変お世話になっております、php.net。久しぶりにじっくりと舐め回すように眺めたら、ページの頭の部分に”Step into the future! Click here to switch to beta php.net site”という文字が書かれている。どうせスパムリンクだろうと思って迷わずクリックしたら、php.netのリニューアルヴァージョンが出てきた。

PHPのヴァージョンも5.5でキリが良いし、php.netもいっちょリニューアルしておくかということらしく、今後はリニューアル後も一向にあか抜けない見た目の、新ヴァージョンに切り替えるらしい。なにこれ、jQuery(おまけにjQuery UIまで!)とか使ってしまって、PHPerとしては軟派になったphp.netを許せない!静的サイトで作り直せ!

ということを愚痴っても仕方が無いので、PHP5.5まわりについて言及しておこう。PHP5.5がリリースとなった事で、決まり通り2ヴァージョン前の5.3のサポートが打ち切られるということになるはずだけど、結局1年間は延長サポートになるらしい。

大抵のレンタルサーバって、PHPのヴァージョン5.2.8か5.3.6かを選ばせている段階だろうから、サポートが少し伸びた事は朗報だろうか。5.4が嫌悪されたということなのかねぇ。

PHP5.5では、cURLがHTTP Pipeliningに対応した。つまりこれまで作ったプログラムを通信部分が高速なものに書き直せるということで、非常に興味があるのだけれど、これまで作ったプログラムはまだ5.4の壁を越えられていないので…

まず5.4の変更点を慌てて読み返す作業にとりかからねば。


WordPress.comでTwenty Thirteenを試す

WordPressのサイトを新しく始めようと思った時、まずレンタルサーバを借りて、WordPressを手順通りインストールして…というような手続きが必ずしも必要というわけではない。というのは、WordPress.comという公式が提供するASPが存在するからだ。WordPress.com(日本語版)

このサービスに登録すると、×××.wordpress.comというアドレスが貰え、不要なインストールをせずにWordPressのブログページが作成できる。勿論、広告が多少入り、また完全版より機能が劣っているという制限はあるのだが、少しの気まぐれで思いついたサイトを実現するには、手軽で丁度良い。WordPress形式なので、本格的にサイトを始動しようと思った時は、データベースのエクスポートをして移行すれば良い。

私はTwenty Thirteenを見た。

このWordPress.comだが、デフォルトのテーマ選択肢の中に、Twenty Thirteenが入っている。最近Twenty Twelveが正式版になったばかりだという印象もあったのだが、何とも気の早いことで、ベータヴァージョンというわけでもなく使えてしまうのである。各所で話題になっているようだが、今回のデフォルトテーマの見た目は非常にポップである。

Twenty Thirteen見た目

Twenty Thirteen見た目

これまでのものと比べ、アクの強さもかなりある。きっともう増やす機能がなかったので、メジャーリリースのインパクトを損じないようにデザインを大きくいじったのだろう。

おそらく、最大の目玉機能となるのは、WEBフォントの全面採用。アイコン類もフォントにすることで、真にスケーラブルな、レスポンシブデザインに近づけたということなのだろう。まあ、正直時期尚早だと思っているのだが、これまでも、WordPressが先進技術を積極的に採用してきてくれたおかげで、それらの技術がWEB標準に育っていったという経緯を見ているので(HTML5やレスポンシブデザインね)、諸手を上げて歓迎しておこう。

で、WordPress.comは実用に足るのかということだけど、プラグインが使えない。この時点で、選択肢から外れてしまう。ただ、WordPressの事が何も分からないという人に手っ取り早くブログを作らせるには、インストールもいらないWordPress.comを勧めておけば良いということだろう。