2010年 1月
久々の正規表現
PHPで日付チェック 時刻チェックをするのに久々に正規表現を使った。
相変わらず便利な機能だと思う。
最初に正規表現にあった時には、なんじゃこの暗号みたいなのは・・・・気持ちわりい!
と思ったのだが、今ではなくてはならないものになった。
ねっ! 気持ち悪いでしょ
// 日付が正しいかをチェックする。例 2008/12/2
static function IsYMD($text)
{
$array=null;
if(!preg_match(“/^([0-9]{4})\/([0-9]{1,2})\/([0-9]{1,2})$/”,$text,$array)) <-ここでチェックしている
{
return ”;
}
if(!checkdate($array[2],$array[3],$array[1]))
{
return ”;
}
return str_pad(intval($array[1]), 4, ‘0’, STR_PAD_LEFT) . str_pad(intval($array[2]), 2, ‘0’, STR_PAD_LEFT) . str_pad(intval($array[3]), 2, ‘0’, STR_PAD_LEFT);
}
// 時刻が正しいかをチェックする。例 17:12:13
static function IsHMS($text)
{
if(!preg_match(“/^([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})$/”,$text,$array)) <-ここでチェックしている
{
return “”;
}
if(intval($array[1])<0 || intval($array[1])>23)
{
return ”;
}
if(intval($array[2])<0 || intval($array[2])>59)
{
return ”;
}
if(intval($array[3])<0 || intval($array[3])>59)
{
return ”;
}
return str_pad(intval($array[1]), 2, ‘0’, STR_PAD_LEFT) . str_pad(intval($array[2]), 2, ‘0’, STR_PAD_LEFT) . str_pad(intval($array[3]), 2, ‘0’, STR_PAD_LEFT);
}
ソースコード自動生成ツールV.097完成
ソースコード自動生成ツールがやっと使えるところまでできました。
自動生成のプログラムを動かす環境には、ちょっとローカルな環境が必要ですが、
現在使えるテンプレートは、PHP PostgreSQL SMARTY環境での自動生成です。
http://XXX.XXX.1.70/scg でアクセスできます。
XXX.XXXの部分は、・・・・・・
どんなものか、一度見てやってください。
一覧表示 登録 削除 照会 削除 プログラムが生成できます。
いろいろご意見お待ちしています。
テンプレートを追加すれば、JAVA VB.NET ASPでも作成可能です。
他のひな型があれば、いつでも相談に乗ります。
虫だらけの長ーいトンネル
ソースコード自動作成ツール
一覧画面の作成用のテンプレートがやっと完成した。
これで、8度目の完成した宣言です。
ソフトウェアというものは、恐ろしいものだ、できたと思っても変な所に バグ・
今度は完ぺきだと思ってもまた バグ
今度は完ぺきだと思ってもまた バグ
今度は完ぺきだと思ってもまた バグ
いつになったらバグが消えるのだろう・・
1度目2度目の言い訳は、「えっ!そうですか、わかりました」
3度目の言い訳は「あっりゃ! そうなんですか」
4度目の言い訳は「あっごめんなさい」
5度目の言い訳は「あっ!」
6度目の言い訳は「うっ!」
7度目の言い訳は「・・・・」
このころから変な自問自答がはじまり、「ぶつぶつぶつ・・・・」「この!!ぶたやろう!!」と自分を責め始める。
もう、10回を超えると、自分が信じられなる。
しかし、こんなことを20年もやっていると、それなりに経験も積んできて自暴自棄にはならない、
ソフトウェアを作るということは、長ーいバグのいるトンネルに入っていくことと覚悟ができる。
Eclipse のデフォルト文字コードを全部UTF-8にする
ASCII S-JIS EUC UTF-16 UTF-8 EBICDIC IBM漢字 富士通JEF NEC漢字といろいろあるけれど、これからの新規開発はすべて、UTF-8でやる!
そのためのEclipseの設定は、下記のとおり
eclipse.exeと同フォルダにあるeclipse.iniに、
-Dfile.encoding=utf-8
をいれるだけでよい。
デフォルトは、MS932になっているようだ。
TAB(\9)を空白にする関数
誰か、TABをスペースに置き換えてくれる関数を知らないですか~~~
とGoogle BING に叫んでも教えてくれないので、ちょこっと作ってみました。
/** タブを空白にする関数。
* @param string $str 変換する元
* @param Array $タブ数
* @return string
*/
function tab2space($str,$n)
{
$ret = ”;
$str = preg_replace(“/(\r\n|\n|\r)/”, “\n”, $str);
$array = split(“\n”,$str);
foreach($array as $v)
{
$s = 0;
$l = ”;
$a = explode(“\t”,$v,strlen($v));
foreach($a as $s)
{
$l.=$s;
$c=strlen($l)%$n;
if($c==0) $l .= fillspace($n);
else $l .= fillspace($n – $c);
}
$l = rtrim($l);
$ret .= $l . “\n”;
}
return $ret;
}
function fillspace($count)
{
$s=”;
for($i=0;$i<$count;$i++)
{
$s.=’ ‘;
}
return $s;
}
情報処理試験対策用の良いサイトを見つけた!!
「相手が誰でも関係ない!!!ガンガンメールしてもただ♪♪♪」
なんて歌にはまっている私ですが、ふとネットサーフィンをやっていると、こんなサイトを見かけた。
むかしむかしあるところに、入門C言語 実習C言語 応用C言語 という本があったそうな・・・・
あの時代にインターネットがあって、こんなサイトがあったら、大枚をはたかなくてもよかったのに。
OpenIDにびっくり
20年以上も開発屋をやっているといろんなことがあるが、自分が考えていることはみんな考えているし、なかなか新しいアイデアなんてものは見つからない。
そろそろ年もくってきたことだし、後進の輩に何か残してやりたいと思い、あれやこれやポンコツの頭をひねっていた。
そういえば、私もいろんなサイトでユーザ登録を行っているのだが、ユーザIDとパスワードの数の多さにはげんなりしている。
何とか、もっと簡単な方法でログインできないものだろうかと考え、「そうだ!、そういうシステムを作ってしまえばいいのだ」なんて思い、久しぶりに興奮していた。
「いや?!まてよ・・・・」 こういういいことを思いついても、また、きっと誰かが先に考えているかもしれない、そう思い、おそるおそるGoogleを検索してみた。
やっぱり・・・・
その興奮もわずか数秒でボルテージ200%から一気に0%にたたきおとされた。
そりゃそうだ・・・ ということで、以下のサイトを見れば一目瞭然、大手のサイトは既に行っているようです。
http://www.openid.ne.jp/
http://openid.net/
http://www.sixapart.jp/about/openid/
実に残念であるが、考えてみればラッキーでもある。
世にあるものは、すべて使ってしまおうとプラス思考で考え続けた20数年はだてじゃない、これを利用して新たなシステム作りを考えることにした。
えっ!!?
「この記事は単なる決意表明なんですか?」 って・・
その通りです。
後日(う~んと後日)には、当社のシステムをこれに対応させたいと思います。
webFXTreeを使って、TREE表示をする
webFXTreeを使うと、エクスプローラのようなTree表示のウェブサイトが簡単にできます。
http://webfx.eae.net/dhtml/xtree/index.html
これは、javascript のクラスになっています。
これと、WebFXLoadTree を使うとサーバとの連携で、これまた簡単にTree表示が簡単になります。
http://webfx.eae.net/dhtml/xloadtree/xloadtree.html
両方使うと、ウェブアプリケーションがリッチなクライアントになります。
phpMyAdminやphpPgAdminは、これを改造して使っているようです。
使い方は、私に聞いてください。