« 2009年03月 | メイン | 2009年05月 »

2009年04月30日

preg_replaceでマッチした文字列を関数で操作して置換したい

preg_replace("pattern", strtolower('$1') ,$str);

こんな感じでマッチした文字列を小文字にして置換したかったんですが、いろいろ試してみたけど挫折しました。

http://q.hatena.ne.jp/1149983795
このページなどを参考にしてpreg_replaceについて勉強しながらやってみたんですけど、どうにもうまくいきませんでした。

preg_replace("pattern", testFunc('$1') ,$str);

function testFunc($str){
echo $str;exit;
}

試しに↑を書いて動かしてみたんですが、結果は「$1」になってしまいます。

変数の参照渡しとかスコープとかの問題もからんでるようです。
もうちょっと調べてもよかったんですけど、時間の余裕がなくなってきたのでまわりくどいやり方で逃げました。。

preg_replaceでマッチした文字列を関数で操作して置換したい | コメント (0) | トラックバック (0)

ファイル名を大文字から小文字に一括変換するWindowsアプリ

ググって探して見つかったフリーソフトを4つほど試してみましたがこれが一番でした。

Cashey

ファイル名を大文字から小文字に一括変換するWindowsアプリ | コメント (0) | トラックバック (0)

2009年04月16日

新幹線車内から無線LANインターネット

してます。N700系のぞみに乗ってます。

プロバイダはこれを使ってます。1DAYパスポート500円。
http://www.hotspot.ne.jp/

速度はちょっと遅め。でもメールチェックやネットサーフィンには差し支えない程度です。

それよりも、揺れのほうがきついです。最新型の車両とはいえ、けっこう小刻みに揺れます。こうして文章を書いているだけでもちょっと気分が悪くなってきますw

無線LANの利用は今回がはじめてでしたが、新幹線に乗り込んだ直後会社から携帯に連絡があり、急遽システムの対応を行いました。不幸中の幸いでした。

新幹線車内から無線LANインターネット | コメント (0) | トラックバック (0)

2009年04月10日

Oracleのnvl関数(NULLを別の値に置換する)

select nvl(column_name, 'ヌル山') from table_name

これでcolumn_nameがNULLの場合、文字列「ヌル山」が返ります。
MySQLのifnullなんかの代わりに使えます。

http://www.shift-the-oracle.com/sql/functions/nvl-coalesce.html

ちなみにnvlは「Null Value Logic」の略だそうです。

Oracleのnvl関数(NULLを別の値に置換する) | コメント (0) | トラックバック (0)

2009年04月09日

関数の中でdistinctを使う

select count(distinct column_name) from table_name

こういう使い方もできるんですね。

関数の中でdistinctを使う | コメント (0) | トラックバック (0)

2009年04月07日

MySQLのreplace構文

replace構文というのを最近知りました。

http://dev.mysql.com/doc/refman/5.1/ja/replace.html

REPLACE は、もしテーブル内の古い行が PRIMARY KEY か UNIQUE インデックスの新しい行と同じ値を持っていれば、古い行は新しい行が挿入される前に削除されるという事以外、INSERT と全く同じように機能します。

ということです。
主キーかユニークキーがあるテーブルに対して、既存レコードがある場合はupdate、レコードがない場合はinsertしてくれるというもの。

特定テーブルに対してデータの更新をする際なんか、最高に便利なんじゃないでしょうか。

自分はこういう場合、まず最初に既存レコードがあろうがなかろうが全件insertして、その後もう一度全件update、という無駄なことをやってましたが、それがこのreplace文なら一発で済むというわけです。

まだ実戦で使ってはいませんが、かなり使えそうです。

ここにも詳しく書いてありました。
http://f32.aaa.livedoor.jp/~azusa/index.php?t=mysql&p=replace


追記
INSERT ... ON DUPLICATE KEY UPDATE; というのもあるようです。
http://dev.mysql.com/doc/refman/4.1/ja/insert.html

MySQLのreplace構文 | コメント (0) | トラックバック (0)

2009年04月03日

mysqlで文字列の末尾からスラッシュを取り除く

関数使って簡単にできないかな~と思って調べてみたら、こんな感じでできることが分かりました。

SELECT TRIM(TRAILING '/' FROM column_name) FROM table_name

trim関数はいろいろと使えそうなので覚えておこうと思います。

参考
http://d.hatena.ne.jp/hosikiti/20090312/1236825301

mysqlで文字列の末尾からスラッシュを取り除く | コメント (0) | トラックバック (0)

2009年04月01日

ie6でページ内リンクが効かない


<a href="#hoge1">hoge1</a>
<a href="#hoge2">hoge2</a>
<a href="#hoge3">hoge3</a>

...

<a name="hoge1"></a>
hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 
hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 
hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 
hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 hoge1 

...

<a name="hoge2"></a>
hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 
hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 
hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 
hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 hoge2 

...

<a name="hoge3"></a>
hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 
hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 
hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 
hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 hoge3 

こういう感じのページ内リンクが、ie6でのみ効かないという状況に遭遇しました。
厳密にはhoge1だけが有効で、hoge2,3が効かない、という症状です。

ググってみたところ、やはりie6のバグみたいです。
とりあえず、aタグの中が空だとうまく動かないという記事があったので、それにならってaタグの中に要素を入れてみたところ、うまく動くようになりました。

ie6でページ内リンクが効かない | コメント (1) | トラックバック (0)

 

kawama.jp | © Kawama. All rights reserved.