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からLinuxにSSHして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