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の取得ができないらしい。

解決策は今のところ不明。

About Me
なんかいろいろメモ。
Tumblelogs I follow: