2009/8/26 水曜日

NetBeans6.5+xampp windows 1.7.0であっさりPHPのソースコードデバッグができました

カテゴリー: — gabon @ 18:09:49

以前Eclipse+全部入りやphpのプラグインをいれて、PHPのソースコードデバッグ環境の構築に挫折したのですが、

netBeansのPHP用パッケージ
xamppの組み合わせでおどろくほど簡単にソースコードデバッグができました。

mk18のプログラミング日記さん
のブログの記事を参考にさせていただきましたが、この記事にもあります、
http://www.netbeans.org/kb/docs/php/debugging_ja.html
の記事だけでうまく動きました(先のmk18さんのブログではこの記事に加えてさらに設定が必要なのですが)、バージョンも上がったので、洗練させているのでしょうかね。

NetBeansプロジェクトの方々、mk18さんに感謝です!

2009/8/19 水曜日

foreachでなくreset(),current(),next()を使う

カテゴリー: — gabon @ 17:17:06

phpで配列の全ての要素に対してアクセスする時に、foreachを使いますが、
初めから順番にアクセスしたいときがあります。

単純な配列ならば、C言語のように、for文でインデックスを加算すればよいですが、
連想配列ではそうもいきません。

その場合は、reset(配列) を使うとよいです。

例えば、

$hoge が配列だとして
reset($hoge); <--hogeの一番始めに
while ( $a = current($hoge)){ <--今のインデックス(ポインタ)の値をとる
print $a;
next($hoge); <--次のインデックスに
}

正規表現で一致した部分を抜き出す

カテゴリー: — gabon @ 17:06:11

phpで正規表現がからんだ処理でちょっとハマリました。

ある文字列が、例えば「 where like ‘%こんにちわ%’」が来て、シングルクゥオーテーションを含んで囲まれた部分を取り出す(この場合は’%こんにちわ%’)時、文字列置換のpreg_replaceではなく、文字列検索のpreg_matchで書くことに気づくまで、結構時間がかかりました。

結論から言うと

preg_match( "/'%.*%/", $hoge, $matches, PREG_OFFSET_CAPTURE);
と書けば、
$matches[0][0]にヒットした部分が格納されています。

print_rデバッグの裏技

カテゴリー: — gabon @ 16:43:44

phpでwebアプリのプログラミングをしていると
print_rでオブジェクトを画面に出したい時がありますが、
ブラウザで表示を行うと、情報が全部くっついてデバッグの効率が非常に悪いです。
そんなときには、

<pre>〜</pre>

で囲めばしっかりフォーマットされて表示されます。


print "<pre>"; print_r ($hoge); print "</pre>";

のような感じです。


HTML convert time: 0.347 sec. Powered by WordPress ME