さんまがおいしい季節だねー(´・ω・`)

1×1 の透過 GIF を CGI/PHP から高速表示する方法

CGI,PHP — タグ: , , , , — さくら @ 2009/04/29 22:31

さくらです♡こんばんわ☆彡

今日は 1×1 の透過 GIF を CGI/PHP から高速表示する方法を紹介するわね!
(CGI/PHP って書き方してるのは、モジュール版の PHP が CGI じゃないからよ。こう書かないとどっちでも使えますって意味に取ってくれない人がいるのよね…)

まず Perl ね。

#!/usr/bin/perl
print "Content-Type: image/gif\n";
print "\n";
print "GIF89a\x01\x00\x01\x00\x80\x00\x00\xff\xff\xff\xff\xff\xff!\xf9\x04\x01\x0a\x00\x01\x00,\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02L\x01\x00;";

次は PHP。

<?php
header("Content-Type: image/gif");
echo "GIF89a\x01\x00\x01\x00\x80\x00\x00\xff\xff\xff\xff\xff\xff!\xf9\x04\x01\x0a\x00\x01\x00,\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02L\x01\x00;";
?>

最後は Python よ。

#!/usr/bin/python
import sys
print "Content-Type: image/gif"
print
sys.stdout.write("GIF89a\x01\x00\x01\x00\x80\x00\x00\xff\xff\xff\xff\xff\xff!\xf9\x04\x01\x0a\x00\x01\x00,\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02L\x01\x00;")

Ruby は知らないからパスね。

説明もあった方がいいかしら。
どのコードも同じ文字列出力してるでしょ?
これ、1×1 の透過 GIF ファイルの中身をそっくりそのままコピペしてきたものなの。
そのままコピペしてもたいした大きさじゃないし中に埋め込んじゃうのが一番だと思うわ。
もちろん表示する画像を切り替えたいんならこんなコードじゃダメよww

今あなたが見てるこのページも、同じようなコードを使って 1×1 の GIF ファイルを出力する CGI を img タグで埋め込んでるわ。
この CGI は Twitter ボット ちんぱんったーの起動用で、誰かがブログにアクセスするとちんぱんったーがなんか Twit するようになってるの。細かく言うと実際に Twit するのは10秒に1回に制限してあるから、CGI にアクセスされたら必ずボットが起動されるワケじゃないんだけどね。

最初 cron で Twit するようにしてたんだけど、だいたいどこの共有サーバでもあんまり細かいタイミングで cron から実行させるように設定すると怒られちゃうから、その代替品としてブログドリブンにしてみたの。

ちょっとだけ gmail をトリガにしてた時期もあったんだけど、あんまりアクセス増えるとこっちも怒られそうだから HTTP ベースが無難だと思うわよ。

さくら

P.S. PHP のコードがバグってましたので直しました。
バグレポはロプロス様です。どうもありがとうございます☆キラッ

3件のコメント »

  1. さくらちゃんは相変わらず物知りね
    うちのアホボットは1×1のアイフレームで擬似cronにしていたわ
    これだとクロールもされちゃうし、どうしようかと困ってたのよね~

    コメント by さえこ — 2009 年 5 月 1 日 @ 01:10
  2. クロールされるのはあれかもしれませんけど、gif にしたところで img タグで埋め込める以外は iframe と大して変わりはございませんわよ。
    さくら的にはできるだけトラフィックを減らしたいので、最初 WordPress にボットのトリガ埋め込もうかと思ったんだけど、バージョンアップとかするとき面倒そうだから止めたの。
    プラグインにしたらいいのかもしれないけど、いつまで WordPress 使うか分からないしねー☆

    コメント by さくら — 2009 年 5 月 1 日 @ 01:58
  3. [...] GDかよ。さらに遅いよ。と思い さくらたんどっとびーず の 1×1 の透過 GIF を CGI/PHP から高速表示する方法 [...]

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

Copyright © 2017 さくらたんどっとびーず | powered by WordPress with Barecity