WEBアプリケーション研究室 開発ノート TOP

WEBアプリケーション研究室 開発ノート PHP

スポンサーサイト

-------- --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加

とくにPHPというわけではありません。ちょっとしたテクニックなので紹介しておきます。ちなみにここを参考(というか丸パクリですが)にさせていただきました。


$date = new Zend_Date();
$date->setTimestamp(ceil($date->getTimestamp() / (10 * 60)) * (10 * 60));


サンプルはZend_Dateを使ってますが、UNIXTIMESTAMPなら何でもいけます。時間や日付の繰り上げがあるので、分だけに注目しないで、TImestamp全体でやるのがキモでしょうか。ceilを変えてやれば切り捨ても可能です。いつもの通り、言われてみれば単純ですが、皆さん賢いですなあ。

    このエントリーをはてなブックマークに追加

Smartyでいつもわからなくなるのでメモです。

配列のキーに動的にアクセする時は


{$form[$key]->render() nofilter}


こんな感じでアクセスできますが、このキーの部分に連結した文字列を使いたい時の方法がはっきりマニュアルに出てません。

正解は下記のとおりです

{$form["{$key}_date"]->render() nofilter}


ポイントはダブルクオーテーションで囲むこと。省略するとエラーになります。

関係ありませんが、Smartyの日本語版マニュアルが`2011-01-10`から更新されてません。英語のマニュアルを見るようにしましょう。

    このエントリーをはてなブックマークに追加

phpunit自体にそのような方法があると思ったら、どうやら無いようですね。
色々方法はあると思いますが、手軽にfindコマンドを使いました。


find ./ -type f -exec phpunit --colors --stop-on-failure {} \;
テストが多いと若干結果が見づらいかもしれませんが、手軽なのでよかったらどうぞ。

    このエントリーをはてなブックマークに追加

タイトル通りなのですが、試したコードはこれです。


$fp = fopen($file, 'a');

if(flock($fp, LOCK_EX))
{
fputcsv($fp, $data);
chmod($file, 0666);
flock($fp, LOCK_UN);
}

fclose($fp);
このコードで対象のファイルがパーミッションの問題でchmod出来ない時、エラーにはならずにデッドロックします。

$fp = fopen($file, 'a');

if(flock($fp, LOCK_EX))
{
fputcsv($fp, $data);
flock($fp, LOCK_UN);
}

fclose($fp);

@chmod($file, 0666);
chmodはロック中にする必要もないので、下記のコードに変更しました。

エラーなら分かるんですけど、エラーも吐かずにデッドロックはこまりますね。

    このエントリーをはてなブックマークに追加

「あの関数って、こんな感じで実行するとどうなるんだっけ?」
とかちょっと確認したい時、いちいち.phpファイルを作って、上げて表示はめんどくさいですよね。
eclipseなんかでサッと実行出来る環境があれば問題ないのですが、それもないとき、linuxのコマンドラインから実行できないかと思って調べました。


php -r "echo sprintf('%2d', 10);"
-rオプションです。

    このエントリーをはてなブックマークに追加
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。