ミュートス・ラボ Mythos-labo
PHPのforeachの不思議
- 2008年9 月22日(月)
- PHP
shimazakiです。
PHPで配列処理を行うことの出来るforeachですが、不思議な動作に遭遇しました。
// 配列をセット
$arr = array("a","b","c");
// flag初期化
$flag = true;
// foreach処理開始
foreach( $arr as $value ){
//
print("配列の中身:");
var_dump( $arr );
print("<br />n");
if( $flag ){
unset( $arr );
//配列変数を開放
$flag = false;
}
//
print("要素の中身:");
var_dump( $value );
print("<br />n");
}
print("最終的な配列の中身:");
var_dump( $arr );
?>
結果は
配列の中身:array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" }
要素の中身:string(1) "a"
配列の中身:NULL
要素の中身:string(1) "b"
配列の中身:NULL
要素の中身:string(1) "c"
最終的な配列の中身:NULL
のように出力されます。
PHPer向けJavaScript入門
- 2008年9 月12日(金)
- JavaScripts/Ajax | PHP
shimazakiです。
先月社内勉強会で「PHPer向けJavaScript入門」をやりましたので、その資料を公開します。
資料はamachang氏のS6を使わて頂きました。
(ウィンドウリサイズ時のサイズ調整とマウスクリックでもページが進むように手を入れてあります、あとIEだと微妙に崩れてしまうので、Firefoxを推奨します)
自分自身真面目にJavaScriptの勉強をしたことがなかったので、良い勉強になりました。
PHPは分かる、JavaScriptはちょっとだけ分かる、もしくは何となく分かっている、という人にはオススメできるかもしれません。
間違っている箇所などありましたら指摘いただけると幸いです。
PHPで何週目かを取得するコード
- 2008年8 月20日(水)
- PHP
shimazakiです。
今日は前に社内で遊んだ課題の中から、「指定日が何週目なのかを取得するコード」のお話をしたいと思います。
何週目かを取得するコード(日曜日固定)
要件としては以下になります。
- 日曜日を週の始まりとする
- 一日から最初の土曜日までを「1週目」とする
真面目に考えると指定日の日付と、一日の曜日と指定日の曜日との差分とをどうこうすれば出てくると思いますが、ちょっと手を抜くことにします。
上記要件を踏まえた上でカレンダーを見てみると、土曜日の日付がその週で最大の日付になっていることが分かると思います。
なので、指定日の日付の週の土曜日の日付が分かれば計算が単純になります。
幸いPHPのdate関数を使用すれば日〜土が0〜6で取得出来ますのでちょうど良いですね。
指定日から土曜日までの差分を指定日に加算し、一週間の日数分の7で割り、切り上げれば何週目かが取得できます。
関数なのでワンライナーにする必要はないのですが(そもそもワンライナーって言っていいのかこれ)、つい。
MondoRescueによるバックアップとリカバリ(CentOS5.1)
- 2008年2 月14日(木)
- オープンソース
こんにちは。
最後の九州男児の血を受け継いだマメ太です。
今回、とある案件にてサーバーのバックアップとリカバリを検討する機会がありました。
その際に見つけた「MondoRescue」というツールについての内容を備忘録がてら残しておきます。
前提条件・要望
- バックアップ対象のサーバーはCentOS 5.1
- バックアップする領域を個別に検討したりバックアップしたりするのではなく、システム全体を一気にバックアップしたい!
- バックアップ用の記憶媒体としてCD-RW、DVD-RWなどの光学ドライブが利用可能。
というよりは、CD(or DVD)を利用してシステムのリカバリを行いたいので光学メディアにバックアップしたい! - ディスク領域のフォーマットとしてLVMも利用する。
MondoRescueについて
MondoRescue(以下、mondo)とはLinuxなどのシステムのバックアップ&リストア作業を効率的にサポートしてくれる優れものツールです。
似たようなツールとしては「Norton Gohst」「Acronis TrueImage」「PartitionImage」などがあります。
大まかに言うとmondoには
- オープンソース(GPLライセンス)である。
- バックアップ先としてCD、DVD、テープ、HDD、NFSサーバー、USBなどが選択可能。
- isoイメージのみの生成も可能。
- 生成したCD・DVDはブータブルなリカバリ用メディアとして生成。
- システム全体の復旧のみならず、リカバリ時にパーティションの切り直しやフォーマットが行え個別なリストアが可能であるため、部分的な復旧も可能。
などの特徴があります。
PHPでバッチ処理を書いてみる
- 2007年12 月25日(火)
- PHP
毎度!
話せるシステム屋を目指しています。
tatsumiです。こんにちは。
とある人の話なんですけれどね、
その人は3人いる兄弟の中で唯一離婚経験があるもんだから
正月が嫌で嫌で仕方ないんだそうです。
それと言うのも、正月は親族一同が集まってご飯を食べるのが恒例となっていて
弟達のお嫁さんに囲まれるのが居心地が悪く肩身が狭いそうなんですよ。
まあ、なんて言うか…
これが本当の「バツが悪い」ですね!
(会場がどっかんどっかん爆笑に…)
(なる訳ない!)
すみません…。
こんな小話は置いておいて本題に入りたいと思います。
PHPでバッチ処理を書いてみる
業務系の仕事をやっていると
絶対に避けて通れないのがバッチ処理ですよね。
現在でもバッチ処理はC言語やCOBOLで書かれることが多いようですが、
数億・数十億円といったような大規模なシステムでない限り
PHPを使用していても十分に要件を満たせると思います。
(もちろん、状況によって異なりますが)
ということで、今回はPHP(cli)でバッチ処理に挑戦してみます。