5年遅れのブラウザリロードをPHPで

2006年頃、ブラウザリロードブームというのがあった。エディタでファイルを保存したら自動的にブラウザがリロードしたら便利だよねという話。

あーこれならPHPでも出来そうじゃん。だってWindows版のPHPならCOMが使えるもん。

<?php
$oShell = new COM("WScript.Shell");
$oShell->AppActivate("Firefox");
usleep(100000);
$oShell->SendKeys("{F5}");
$oShell = null;

で、エディタ側でどうやってこれを呼ぶかなんだけど、普段はWindows上のPuTTYからLinuxSSHしてVimで作業しているので、リモートからローカルになんか飛ばしてやる必要がある。

Rubyな人ならサクっとHTTPサーバーをでっち上げたりするんだろうけど、PHPなんでApacheを立ち上げちゃえばいいよね。幸いApacheコマンドプロンプトから起動するためのひな形は持っている。

で、出来たのがこれ。

ダウンロードして、Apache1.3.xならgo.batを実行すれば吉。色々パスが直書きされているので自分の環境以外で動くかどうかわかりませんが。

あとはファイヤーウォール超えとかするために、PuTTYでリモートからローカルにポートフォワードしてやれば、リモート側で

$ GET http://localhost:50080/reload.php

で、手元のFireFoxがリロードしてくれる。ついでに、

$ GET http://localhost:50080/reload.php?doc=htmlspecialchars

で、PHPのオンラインドキュメントを表示できるようにしてみました。Vimの設定は適当に。