Oracle - PHPでの接続からfetchAll的なものまで
$con = ora_logon('user@gachapin', 'pinpin');
$curs = ora_open($con);
$sql = 'SELECT * FROM mukku_list';
ora_parse($curs, $sql);
ora_exec($curs);
$ary = array();
while (ora_fetch($curs)) {
$tmp = array();
for ($i=0; $i<ora_numcols($curs); $i++) {
$tmp[] = ora_getcolumn($curs, $i);
}
$ary[] = $tmp;
}
ORA関数とOCI関数の違いがよう分かりません。
PHP - pathinfoのバグ
全角文字に非対応。
/www/gachapin.jpg
array
'dirname' => string '/www' (length=4)
'basename' => string 'gachapin.jpg' (length=12)
'extension' => string 'jpg' (length=3)
'filename' => string 'gachapin' (length=8)
/www/ガチャピン.jpg
array
'dirname' => string '/www' (length=4)
'basename' => string '.jpg' (length=4)
'extension' => string 'jpg' (length=3)
'filename' => string '' (length=0)
PHP6で修正予定とのこと。
PHP - 日付の形式変更
$date = datetime型の日付
date('Y年m月d日 H時i分s秒', strtotime($date));
地味にうれしい。
PHP - curl
結局使わなかったんですけども、せっかくなので使い方をメモ。
$url = 送り先URL
$data = 送るデータ配列
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
きっとこんな感じ。
RSS - 末尾の「Z」
RSSの、とりわけAtomに多い印象だが、updated や modified 等の日付の末尾に「Z」の文字が付いていることがある。
2009-11-17T00:51:05Z
これはGMT (グリニッジ標準時)を意味するもので、日本であるならば9時間の時差。つまり末尾に「Z」が付いていたならば、その時刻に9時間を足したものが本当の時刻となる。反対に「+09:00」の表記があれば、この時刻は既に9時間足していますよということになる。
しかしガチャピン日記のように、末尾に「Z」の表記がありながらも既に9時間足されてしまっているケースもあるので、一概にそうとは言い切れないのかもしれない。ガチャピンのミスであることを願う。
PHP - for文のネスト時の一般的な変数名
i, j, k, l, m, n
こんな感じらしい。
元々はFORTRANだと i, j, k, l, m, n から始まる変数は自ずと整数型となる仕様があるらしく、その辺に由来しているとかそんな記事があった。真相はどうやら。
JS - お手軽IEかどうか
/*@cc_on!@*/false
JS - eventのAttribute
EC CUBEに携わった際に、セレクトされた値によってリンクボタンのonmouseoverとonmouseoutの内容を変えなきゃならないという稀有な事態に陥った。
func('over_image.gif', 'cart');
中身は簡単に書くとこんな感じで、要するにマウスが乗った際に画像を差し替えるもの。
とりあえずsetAttributeでセットしたらFireFoxではうまくいったが、IEの6と7だけうまくいかない。
なのでgetAttributeで中身を取り出してalertしてみると…
function anonymous()
{
func('over_image.gif', 'cart');
}
こんな値が出てきた。
なのでセットする時もこの形にしたらうまくいった。
PHP - PDOのプレースホルダ LIMIT句のバグ?
$num = 適当な数字
$sth = $db->prepare('SELECT * FROM test LIMIT 0, ?');
$sth->execute(array($num));
例えばこんな感じだとうまく動いてくれない。PDOのバグという噂。
$sth = $db->prepare('SELECT * FROM test LIMIT 0, ?');
$sth->bindValue(1, $num, PDO::PARAM_INT);
$sth->execute();
これなら動く。
mobile - 環境変数
DoCoMoのみHTTP_REFERERの取得ができないらしい。
解決策は今のところ不明。