2013年3月30日土曜日

URLに応じて条件分岐するphpサンプル(正規表現)

URL(パス)に応じて条件分岐させるコードを書いたのでサンプルとして残しておきます。

URLでの分岐はドメインとかファイル名とか色々ありますが、これはパス(ディレクトリ)で分岐させる、非常に簡単な例です。

<?php if(preg_match("#^/blog/archive/#",$_SERVER["REQUEST_URI"])): ?>

http://example.com/blog/archive/ 以下で表示される。

<?php elseif(preg_match("#^/blog/#",$_SERVER["REQUEST_URI"])): ?>

http://example.com/blog/ 以下で表示される。

<?php elseif(preg_match("#^/company/#",$_SERVER["REQUEST_URI"])): ?>

http://example.com/company/ 以下で表示される。

<?php else: ?>

その他

<?php endif; ?>

2013年3月26日火曜日

Windows7でクイック起動バーが消えた

自分はクイック起動が好きで、ブラウザ、メーラー、秀丸、デスクトップ表示をクイック起動バーに置いてます。

なんですが、気付いたらクイック起動バーがごっそり消えてました。何もしてないと思うんですが・・

無いと困るので、復活させる方法を調べてみました。

http://www.724685.com/weekly/qa091223.htm

こちらの方法で無事復活。


しかしクイック起動のパスが

C:\Users\ユーザー名\QuickLaunch

だったのが、

C:\Users\ユーザー名\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch

に変わってました。

なんか納得できませんが、とりあえず元に戻ったので良しとします。


追記

また同じ現象が起こったのでもう一度調べてみたところ、なんらかの原因でエクスプローラーが落ち、それでタスクバーが消えたということらしいです。
上述のクイック起動のパスを変えるやる方は関係ないみたいです。

http://vista.win7.jp/hkv1006.htm

このやり方でエクスプローラーを起動しなおしたら、クイック起動バーも復活しました。

C:\Windows\explorer.exe

を起動し直してやればいいんですが、面倒ですね。。

2013年3月14日木曜日

Cドライブ容量圧迫の原因はC:\Users\[ユーザー名]\AppData\Roaming\にあった (Windows7)

しばらく前からCドライブの容量不足に悩まされており、MacDriveを買ってファイルを移動するなどしたものの、抜本的な解決には至りません。

いくらなんでもここまで容量が圧迫されるのはおかしい、どこかでファイルが肥大化してるか増え続けてるんじゃないか、と思って調べてみたところ、「C:\Users\[ユーザー名]\AppData\Roaming」が50GBもあるのを突き止めました。

さらに辿って行くと「C:\Users\[ユーザー名]\AppData\Roaming\Adobe\Common\Media Cache Files」に大量のAdobe Premiere Elementsのキャッシュファイルが。

犯人はPremiere Elementsでした。

自分はPremiere Elementsで動画編集をしてるんですが、キャッシュが溜まり続けていたようです。

削除したらCドライブの容量が一気に半分に減りました。。

ちなみに\AppData\Roamingはいろんなアプリで使うファイルが格納されていて、iTunesを使っているとiPhoneやiPadのバックアップファイルがここに溜められていくそうで、Cドライブが圧迫される原因になることがあるようです。

Cドライブの容量が足りなくて困っている人は、とりあえず\AppData\Roamingを調べてみると良いかもしれません。

2013年3月8日金曜日

Grid.js(superTables後継)とjquery.tablefixでテーブルを固定

javascriptでテーブルのヘッダや左側の項目なんかを固定するライブラリはかなりたくさん出てます。

なかでも名前のインパクトからか、superTablesなんかは自分の中で有名です。

今回テーブルのヘッダと左側の項目を固定する仕事があったので、ちょっと調べて見ることに。

まずはsuperTables

でもググっても公式ページが出てこない。どこからダウンロードすればいいんだ??

と思ってたら今はGridというのに名前が変わってるんだそうです。

http://www.matts411.com/post/grid/

アップデートされてるのはいいですが、明らかに検索しにくい名前になってしまったのはちょっと残念です。

さっそく使ってみます。
grid.jsは内で読み込まないと動かないという現象で少しつまづきましたが、動作は問題ありません。
あとは要素をしっかりとで囲ってやるのを忘れずに。

それからひとつ問題が。rowspanやcolspanを使ってると表示がおかしくなります。
対応してないのかな、と思ってGridのページを見てみると、作者じきじきに「unfortunately not at the moment.」と言ってます。

残念ですが、rowspanやcolspanを使ってるとGridはうまく動かないようです。


続いて目をつけたのがjquery.tablefix

http://www.otchy.net/javascript/tablefix/

作者は日本人。しかもrowspanとcolspanにも対応してるようで、作者ページのサンプルもrowspanとcolspanが使われてます。

よし、これで勝つる!と思ったのも束の間。実装してみると少しカラムがずれるという現象が発生。

どうやらrowspanやcolspanも、ちょっと複雑になると対応できないみたいです。
具体的にどこまでがセーフでどこからがアウトなのかはわかりませんが、自分のケースではズレてしまいました。


あとjquery.tablefixでは、テーブルの中にフォームが入ってると、そのフォームは機能しなくなります。

逆にGridのほうはフォームは有効だそうです。


というわけで今のところ解決してません。

とりあえず言えるのは、テーブルの構造はなるべくシンプルにしておいたほうが良い、ということでしょうか。

他のライブラリも含め、もう少し調べてみようと思います。


追記:
こちらのページがとても参考になります。
http://defghi1977-onblog.blogspot.jp/2012/02/blog-post_09.html

jquery.livesearchでサジェストっぽいのを作る

サジェストっぽいのを作りました。



別ウインドウで表示→http://kawama.jp/sample/jquery_livesearch.php

ソースを見てもらえば分かりますが、jquery.livesearchというライブラリを使い、ul liの中のテキストを検索してマッチするものを表示しています。

本格的なサジェスト機能はajaxが必須ですが、ちょっとサジェストっぽいものを作りたい時はこのやり方も使える思います。

2013年3月7日木曜日

HTMLのLHタグ

<lh>タグというのがあるのを知りました。
<ul><li>のリストのヘッダのタグです。List Headerの略です。

<th>があるんだから<lh>があってもおかしくないと思います。

ただHTML3.0の時に出現してお蔵入りになった要素だそうで、一般的にはあまり使われていません。

http://www.nirui.com/2nd/yuu/html/list/lh.html
http://www.asahi-net.or.jp/~jy3k-sm/i_net/lh.html

なので、googleで「html LH」を調べてもほとんどヒットしません。

あればあったでそれなりに使えそうなタグだと思います。

ただし前述のように正式にサポートされていないので、使う場合は多少のリスクはあると思います。

2013年3月1日金曜日

秀丸マクロで複数の置換を一括で処理

秀丸でテキストファイル内の文字列置換を10個ほどやる件があったんですが、1個ずつ置換するのは面倒です。

そこでマクロとかないかな~と思って探したらありました。

http://hide.maruo.co.jp/lib/macro/listreplace211.html

あ,ア
い,イ
う,ウ
え,エ
お,オ

こんな風にテキストファイルに置換リストを書いておき、それを読ませると上から順番に一括で処理してくれます。

ちなみにWindows7だとマクロを置くフォルダはここになります。よく忘れるのでメモしてきます。

C:\Users\ユーザー名\AppData\Roaming\Hidemaruo\Hidemaru\Macro

それからこのマクロを動かすには田楽DLLというのが必要でした。
http://hide.maruo.co.jp/lib/macro/dgdll250.html

DLLを秀丸フォルダに投入すると、思った通りに一括置換が実行されました。