■
test
SATAEI-LPPCI
http://www.kuroutoshikou.com/products/serialata/sataei-lppcifset.html
主な仕様: SerialATA対応
SiliconImage Sil3512搭載
コネクタ形状: SerialATAIIコネクタ2ポート
(内部1ポート、外部1ポート)
インターフェース: PCI (標準及びロープロファイル対応)
対応OS: Windows2000/XP
保証: 1年間
製造元: Lycom
メーカーサイト: http://www.lycom.com.tw/
date関数で”Asia/Tokyo・・”なんかのエラーが出る件:PHP5.1.0以降
今まで動いてたのに。。
なんて事はプログラミングの世界ではよくありますが、今回はphpにおける、そんなネタ。
phpのdate関数を発行する際、タイムゾーンを設定していないと下記のようなエラーが出ます。
Strict Standards: date() [function.date]: It is not safe to rely on the systems timezone settings, please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. We now use 'Asia/Tokyo' for 'JST' in
どうも、5.1.0からデフォルトタイムゾーンを設定しないといけないみたい。。
設定は、date_default_timezone_set関数で定義するか、php.iniで設定するかです。
date_default_timezone_set 関数
date_default_timezone_set() は、日付/時刻関数で 使用されるデフォルトタイムゾーンを設定します。
注意: PHP 5.1.0 以降(日付/時刻 関数が書き直されてから)、タイムゾーンを 正しく設定せずに日付/時刻関数をコールすると E_NOTICE が発生し、またシステムの設定や TZ 環境変数を 使用すると E_STRICT が発生するようになりました。
つまり、date_default_timezone_set関数では以下のように記述、
date_default_timezone_set('Asia/Tokyo');
php.iniでは、以下のように設定、
date.timezone = Asia/Tokyo
となります。
しかし、これって結構影響デカイ変更ですね。。
PHPのunpack関数が出力する配列のインデックスを振り直す
unpack関数の使い方については書いたのですが、一つ注意点があります。
それは、フォーマットを unpack("C*",$data) の様にした場合、出力される配列のインデックスが1から振られてしまうという点です。
自分の場合、配列のインデックスは0から始まるものとしてプログラムを書く事が多いので、この仕様はちょっと気持ちが悪いです。
そこで、unpack()関数で出力される配列のインデックスを振り直すことにします。
やり方は簡単。
unpack関数の結果をarray_merge 関数に渡すだけです。
※数字インデックスのみが振り直されますので、インデックス文字を指定した部分は変化しません。
$arr = array_merge( unpack("C*",$data) );
array_merge関数|PHPマニュアル
配列が一つだけ指定され、その配列が数字で添字指定されていた場合、 キーの添字が連続となるように振り直されます。
これでインデックスが0から始まる配列にすることができました。
スッキリ。(^-^)