小物関数(misc_function)#2 生年月日から年齢を

Posted under php by uechoco on 火曜日 28 8月 2007 at 00 : 05 : 58

小物関数シリーズ。最近、ITProの生年月日から年齢を計算する簡単な計算式:佐野裕のサーバ管理者日記の記事が好評らしいので関数化しておく。

(今日の日付-誕生日)/10000の小数点以下切捨て

というなんともシンプルな方法。これは革命とも言うべきか。ってなわけで下記が実装コードです。

PHP:
  1. function date2age($birth_unix)
  2. {
  3. $now = date('Ymd');
  4. $birth = date('Ymd', $birth_unix);
  5. return (int)(($now - $birth) / 10000);
  6. }
  7. echo date2age(mktime(0,0,0,8,28,1987));

念のため、2038年問題には対応していない日付計算なので、心配な方はPEAR::Dateなりで、64bit化させてください。


小物関数(misc_function)#1 ファイルサイズ表示調整

Posted under php by uechoco on 月曜日 27 8月 2007 at 23 : 29 : 23

なんとなく色々な小物関数を貯めていこうと思う。まずはファイルサイズを最適な単位で出力する関数。phpにはfilesize関数はあるが、返すのはbytes単位のみ。見た目ですぐにわかるファイルサイズがいいですね。

その1

Webちょいテク:CSSとかPHPとか便利テクあれこれ : ファイル情報の表示

http://sozaifan.exblog.jp/839291/

こちらのブログのソースコードを一部改変したものが下記のソースコード。

PHP:
  1. function get_file_size($filename) {
  2.     if (!file_exists($filename)) {
  3.         return null;
  4.     }
  5.     $size = filesize($filename);
  6.     $sizes = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
  7.     $ext = $sizes[0];
  8.     for ($i=1; (($i <count($sizes)) && ($size>= 1024)); $i++) {
  9.         $size = $size / 1024;
  10.         $ext = $sizes[$i];
  11.     }
  12.     return round($size, 2).$ext;
  13. }
  14. echo get_file_size('test.php');

ファイル名を与えると、そのファイルサイズを返す仕組みになっている。

その2

PHP: number_format - Manual

http://php.benscom.com/manual/ja/function.number-format.php#72969

こちらはphpのマニュアルのコメント中にあったソースコード。こちらも少し改変。

PHP:
  1. function bytes($a) {
  2.     $unim = array("Bytes","KB","MB","GB","TB","PB");
  3.     $c = 0;
  4.     while ($a>=1024) {
  5.         $c++;
  6.         $a = $a/1024;
  7.     }
  8.     return number_format($a,($c ? 2 : 0),".",",")." ".$unim[$c];
  9. }
  10. echo bytes(1030);

こちらは、バイト数を与えると書式済みファイルサイズを返してくれるもの。

余談ですが、WindowsAPIではStrFormatByteSize(SHLWAPI.DLL)という関数が同様の処理をしてくれます。phpでも標準で対応して欲しいですね。


Thunderbirdをタスクトレイに

Posted under ソフトウェア by uechoco on 木曜日 16 8月 2007 at 14 : 06 : 18

最近になっていろんなネットサービスの登録メールアドレスをHotmailからGmailに移行したり、メーラーをBeckyからThunderbirdに移行しました。時代の流れというか、自分のIT環境がそうなることを必要としていたという感じです。

Thunderbirdを使ってて毎回思っていたのが、タスクトレイに入らないってこと。ことあるごとに設定を探していましたが、ほかに探すところを忘れてました。そうGoogle先生に聞くの忘れてました。

一番目に正解が書いてありました。「Thunderbird-Tray」。みんな考えていることは同じか。

Thunderbird_Tray.JPG

こんな(↑)感じにタスクトレイメニューは日本語で出せたりします。ショートカットキーでThunderbirdが呼び出せるのも良いですね。設定画面は英語ですがなんとかなります。

まぁ・・・今更な記事ですねw

窓の杜 - 【NEWS】「Thunderbird」をタスクトレイに常駐できるようにする支援ソフト
http://www.forest.impress.co.jp/article/2005/03/07/tbtray.html

Thunderbird-Tray
http://sniperbeamer.de/tbtray/


ぁ、その関数も名無しですか。

Posted under php by uechoco on 日曜日 12 8月 2007 at 13 : 23 : 54

最近FlashのActionScriptを勉強し始めています。所詮プログラマなので、絵の才能は皆無ですが(笑)ActionScriptだけでも覚えて、ちと仕事の幅を広げてみようかと思います。

さてさて、Flashっていう特殊な環境でJavaScriptをやり始めたせいか、最初の頃は全く気にも留めていなかったんですが、ActionScriptって無名関数/匿名関数を使いまくってるなって気づきました。Java屋でない私にとっては物凄く奇妙なソースコートです。無名関数のスコープとかがいまいちよく理解できない。C言語とかで言う関数ポインタってわけでもなさそうだし、なんともいえない感じです。

phpにもcreate_functionって関数で、無名関数をつくることができるらしく、サンプルにはforeachで分解する関数配列的な使い方と、array_walkと組み合わせたコールバック関数的な使い方が載っています。Javaの無名関数と比べると、言語構造レベルの対応ではなく、関数レベルの対応なので、関数定義をシングルクォーテーションで囲むとか言うなんとも奇妙な書き方をしなければならないようです。いや、私にとっては無名関数が奇妙なんですが…。

時代の流れについていけないってのは悲しいですね;;


« 前ページへ

Copyright © 2012 うえちょこ@ぼろぐ. WP Theme created by Web Top.