[PHP] 文字列中の波括弧記法が気持ち悪すぎる
- 2008-09-18
- カテゴリ: Server Side
- タグ: PHP Tips
PHPでは、二重引用符 (") で括った文字列の中で、波括弧 ({}) を使って変数を展開できたりするわけだが、この波括弧記法があまりにも強力すぎて気持ち悪かったので書いてみる。
Zend_View with HTML_Template_Flexy が意外と簡単だった件
- 2008-09-15
- カテゴリ: Server Side
- タグ: PHP ZendFramework Flexy
Zend_ViewからSmartyを使うクラスはネット上を検索すると結構出てくるんだけど、Zend_ViewとHTML_Template_Flexyを組み合わせたクラスはなぜか全然見つからない。
Zend_View + Flexyを使いたい人っていないのかなーとか思いながら、適当にZend_ViewとFlexyを組み合わせてみたら、思った以上に簡単に作ることができてしまって驚いた。
とりあえず、↓のようなクラスを使えば、一応動くものができてしまう。
<?php require_once 'Zend/View.php'; require_once 'HTML/Template/Flexy.php'; class My_View extends Zend_View_Abstract { protected function _run() { $flexy = new HTML_Template_Flexy(); $flexy->compile(func_get_arg(0)); $flexy->outputObject($this); } }
[PHP] 配列の+(プラス)演算子は便利
- 2008-06-24
- カテゴリ: Server Side
- タグ: PHP トラックバック
久しぶりにPHPの話題。
確かにPHPの配列の加算演算子はとても醜い仕様だと思う。
問. 配列を+(プラス)演算子で加算すると? : アシアルブログ
<?php $fruit1 = array('apple', 'banana', 'cherry'); $fruit2 = array('kiwi', 'lemon', 'melon'); $fruit = $fruit1 + $fruit2; ?>$fruitの値は次のA~Cのどれになるでしょうか?
A. array('apple', 'banana', 'cherry') B. array('apple', 'banana', 'cherry', 'kiwi', 'lemon', 'melon') C. array('kiwi', 'lemon', 'melon')(中略)
正解は「A」です!
(中略)
ちなみに、私はてっきり「B」になるものと思ってました……。
+演算子の不思議な挙動も、配列と連想配列を一緒くたに扱うことから始まるPHPの悲劇の一つだと思うが、個人的にはとても大好きな仕様だったりする。特に↓のような使い方を頻繁に使うようになると手放せなくなる。
[PHP] foreach ($array as &$value)形式が使えたなんて
- 2008-04-28
- カテゴリ: Server Side
- タグ: Tips PHP 不覚
foreach文で参照が使えるってさっきはじめて気づいた。
<?php $array = array(array(), array(), array()); foreach ($array as $value) { $value[] = 'foo'; } print_r($array); foreach ($array as &$value) { $value[] = 'bar'; } print_r($array);
自分のiモードIDを知るためのスクリプト
- 2008-03-31
- カテゴリ: Server Side
- タグ: 安易な発想 DoCoMo PHP ケータイ
iモードIDというのが利用可能になったらしい。
「iモードID」が提供開始、一般サイトでもユーザー情報を取得可能に:モバイルチャンネル - CNET Japan
NTTドコモが3月31日、一般サイトでもユーザ情報を活用したサイトを制作できる「iモードID」の提供を開始した。NTTドコモのサイトで、iモードIDを利用するための方法が公開されている。
ということで、自分のiモードIDを調べるスクリプトを書いてみた。
[PHP] Zend Framework 標準コーディング規約について
- 2008-02-04
- カテゴリ: Server Side
- タグ: Tips PHP コーディング規約 ZendFramework
なぜかZend Frameworkのコーディング規約が突然ブックマークされまくってる。最近PHP叩きが流行ってるからその流れで票が集まったのかな?
Zend Frameworkのコーディング規約は、PHPでプログラムを書くなら一応目を通すぐらいはしておくべきものだと思っていたのだが、意外とみんな読んでなかったのかも。
と言いつつも、仕事でコーディングするとき以外は自分もあまり守っていない。
まず、インデントにスペースを使うのが好きではないので、一人でコードを書くときは全部タブで統一してしまう。
[MyMiniCity] 街の状況に応じて自動的にアクセスを振り分けるPHPスクリプト
- 2008-01-03
- カテゴリ: Server Side
- タグ: PHP MyMiniCity 車輪の再発明
MyMiniCityで、街の状況に応じて自動的に必要なURLにリダイレクトするPHPスクリプトを書いてみた。既に同じことはいろんな人がやってるけど。
http://lab.liosk.net/MyMiniCity.php?city=liosk
?city=liosk
の部分を書き換えれば別の都市にアクセスできます。
[PHP][mod_rewrite]ユーザーエージェントでPCとケータイを判別
- 2007-11-04
- カテゴリ: Server Side
- タグ: Tips ケータイ mod_rewrite apache PHP Perl 正規表現
HTTP_USER_AGENTの文字列を判断して、PCからのアクセスなのかケータイからのアクセスなのかを判別するというのは、広く使われているテクニック。
例えばDoCoMoのケータイならば、ユーザーエージェントの先頭に必ずDoCoMoの文字列が入ることになっているから、それを見てドコモのケータイだと判断すればよい。
先ほど、各キャリアのユーザーエージェントを調べたのでメモ。
[PHP]ごく単純なロギングクラス
- 2007-10-14
- カテゴリ: Server Side
- タグ: Tips PHP 安易な発想
出先で作成したロギングクラスをメモ。動作確認もしていないが…
PEAR::Logを使うのもアホくさいときはこれぐらいでいいかなと思う。ただし、log()メソッドしか使わないようにしておいて、必要なときにいつでもPEAR::Logに乗り換えられるようにしておく。
[PHP]メソッドの返り値にオブジェクト演算子が使えるようになっている件
- 2007-10-07
- カテゴリ: Server Side
- タグ: Tips PHP ワンライン
PHPで、メソッドの返り値に対してオブジェクト演算子(->)が使えるようになってる。
$obj->medhod()->method();
前から使えたっけ?使えないイメージだったが。
今までは特に使うシーンがなかったんだが、今日便利な使い方を覚えた。