foldrr's weblog

旧ブログ http://d.hatena.ne.jp/foldrr/

2008-04-01から1ヶ月間の記事一覧

MySQL ではデータベース名とテーブル名は小文字にしよう

http://dev.mysql.com/doc/refman/4.1/ja/innodb-restrictions.html バイナリ形式のデータベースを Unix と Windows の間で移動するには、 すべてのテーブル名とデータベース名を小文字にする必要がある。 らしい。 MySQL 4.1 での話なので 5.x ではどうなん…

PHP mb_ereg() でハマった

mb_ereg() でハマった。 mb_ereg() で半角カタカナの入力チェックをしていたら、環境によってチェックの結果が違った。 具体的には全角カナなのに半角カナと誤認されてしまったり…。 そして↓なページを見つけた。 http://blog.asial.co.jp/181 原因は簡単な…

PHP スクリプトをバイナリに変換できる Bambalam PHP EXE Compiler

http://www.bambalam.se/bamcompile/ ウェブアプリ違う言語でパッケージアプリを作らないで済むようになったらハッピーなんだけど、できるかな〜?

CodeIgniter のショートタグ

CodeIgniter でショートタグを使おうとしたけど使えなかった。 公式サイトでは http://userguide.cilab.info/general/alternative_php.html CodeIgniter では、オプションで、その都度ショートタグ機能の設定を上書きして、 サーバでサポートされていない場…

PHP の文字列編集では変数展開より文字列連結を使う

http://php.benscom.com/manual/ja/language.types.string.php#language.types.string.parsing 注意: 文字列内での変数のパースは、文字列の連結に比べてよりメモリを消費します。 メモリの使用量をできるだけ抑えた PHP スクリプトを書きたいのなら、変数の…

PHP で変数展開せずにヒアドキュメントを定義する

PHP 5.3.0 以降ならば、終端記号をシングルクォートで囲むと変数展開は発生しない。 以下、例。 参考 http://php.benscom.com/manual/ja/language.types.string.php

PHP のビューでチェックボックスは check1[] より check1[1] を使う

HTML でチェックボックスの name 属性にブラケットを使うと、PHP 側で配列として処理できて便利。 この時以下2つの方法がある。 方法2がオススメ。 方法1 <input type="checkbox" name="check1[]"> <input type="checkbox" name="check1[]"> <input type="checkbox" name="check1[]"> 方法2 <input type="checkbox" name="check1[1]"> <input type="checkbox" name="check1[2]">

HTML ヘルパでは value をどこから持ってくるのがいいか?

以下の優先順位で取得を試みるとよさそう。 コントローラで設定した値 リクエスト値 セッション値 デフォルト値 そんな関数を作ってみた。 result->get($name); if($ret !== null){ return $ret; } $ret = $t->request->get($name); if($ret !== null){ retu…

CodeGear Delphi for PHP を使ってみた

ダウンロードは以下。 http://www.codegear.com/jp/products/delphi/php すごいと思った所: VisualStudio のように画面部品を配置できる。 ガイド機能がすごくいい。 プロファイラでどこで時間が掛かっているか分かる。

PHP の isset() には関数の戻値を渡せない

isset() には関数の戻値を引数として渡せないので注意。 isset() の引数は参照渡しになる。PHP の場合、変数の参照はとれるが、値の参照はとれない。 そのため関数の戻り値を isset() に渡すことはできない。

PHP でショートタグは使ってはいけない?

使ってはいけない理由は主に以下2つです。 サーバ側の設定によってはソースが見える XML と相性が悪い 逆に言えば上記2つを分かっていれば使ってもいいってこと? ソースが見えるかはチェックロジックを入れておけば分かる。 XML は直接 PHP に書かなけれ…

Windows で ping を使えるようにする

Windows XP SP2 以降はセキュリティ設定が厳しくなり、ping が届かない場合がある。 以下サイトに詳しい説明がある。 404 File not found - 家庭内LANを構築しよう

CakePHP の h() 関数に脆弱性

CakePHP の h() という関数は htmlspecialchars() の別名。 この関数は脆弱性があるらしい。 以下サイトに詳しい説明がある。 http://www.blueocean.bz/blog/cakephp/2008/04/15/h-%e3%81%ae%e8%84%86%e5%bc%b1%e6%80%a7/ 実際にソースを見てみる。 cake/bas…

php の preg で日本語を扱う方法

ソースを utf8 で書いていて正規表現に日本語を使う場合は以下のように u オプションを付ける。

ruby の strftime

時間のフォーマットには strftime を使う。 require 'Date' t1 = Date.today p t1.strftime("%Y/%m/%d") t2 = Time.new p t2.strftime("%H:%M:%D") strftime という分かりにくいスペルだけど、Ruby では名称の多くは C や Perl から引用されている。 そのた…

ruby の time, date, datetime

time は高速だけど、扱える範囲が狭い。 date は年月日を幅広く扱える。 datetime は年月日字分秒を幅広く扱える。

ruby の $LOAD_PATH

モジュールの参照パスを表す配列。 Ruby はこの $LOAD_PATH に登録されているパスからモジュールを探す。

trac で解決済みのチケットにはログが追加されない

TracLight 1.5.1 を使っていて気付いたんだけど、解決したチケットに対して、コミット ログで何か書き込んでもチケット画面には反映されない。 ぁそもそも解決してるのにコミットが起きるってのがおかしいって話かな。 それならそれでコミットの時に何か言っ…

CakePHP で __autoload はどこにある?

と思って grep したけど見つからない。 そもそも CakePHP って PHP4 にも対応してるんだから、__autoload なんて使ってない気がしてきた。

PDOStatement::bindParam() で一時変数を割り当ててはダメ

PDO パラメータライズド クエリーを利用する場合、bindParam() でパラメータをバインドする。 下記のコードではバインドが意図したようにできないので注意。 prepare($sql); $params = array( ":user_id" => "1", ":user_name" => "foo", ); foreach($params…

Google Apps のインストール

http://googleapps.hakaede.com/2007/05/value-domain.html結構サクサクと設定できた。 ポイントは以下。 ドメインのルートを登録しても大丈夫。(サブドメインじゃなくてもOK MXレコードが何なのか勉強しておく。 Google への申し込み http://www.google.co…