読者です 読者をやめる 読者になる 読者になる

肉とビールとパンケーキ by @sotarok

少し大人になった「肉とご飯と甘いもの」

50行PHPスクリプト1枚 だけ で動かす超シンプルチャット

PHP

こんにちは。
今日はネタスクリプトを1枚書いたので、投げておこうかな、と。


題名のとおり、50行で書いたPHPによるチャットスクリプトです。
なんかそれだけ聞くと、「え、それだけ?」って思ってしまいますが、えぇ、それだけです。

しかし、50行PHPスクリプト1枚だけで動かすことができます。
このスクリプトファイルは、PHPの実行ファイル自分自身にログを書き込みます。したがって、ログファイルを生成することもありません。


設置は、以下のスクリプトを chat.php とかしてパーミッション666で設置します。で、URLんとこを設置したURLに変更すればOK。

サンプルサイトは以下。


まとめ

golfしているわけではないので、「可読性を維持しつつ50行」がとても重要。そして、ログファイルが自分自身ってのもとても重要。自分自身のLOCK_EXが取得できるとは思いませんでした。PHPすげー。
あと、HTML部分はいくらでも凝ることができるので、適当に、悪くないカンジで、というレベルです。
あと、ログを50行に制限する前が、コレで、制限した後が今のです。若干無理がでてきています。制限しないほうが簡単だけど、すぐに死ねそう。。。。


CSRFできるよねーとか、まあいっか。ネタだし。

file_get_contents と flie_put_contents があるからこそ実現したアホなネタです。(ぁ


あーあー \ はキモいしPHP 5.2.7 とかアホだし、楽しいなー!!


(変なトコないよね?大丈夫だよね?)

追記

そういえば、最初は __COMPILE_HALT_OFFSET__ をつかって、__halt_compiler() までシークしてたんだけど、Apache経由のPHPだと、なぜかこの変数がセットされない現象があって、断念。なんでだろう??
しかたないから、__halt_compiler() まで substr するっていう荒業に・・・。

さらに追記

なんかしくってた部分を修正したわけなんですが。
修正をUPするたびにログが消去されるというかわいそうなことになるなーと思った。ログファイルがスクリプトファイル自身っての超楽じゃん!とおもったけどこういう弊害もあったりなど。w