■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■               CGI3分クッキング                                  Vol:021                          発行日: 1999年9月17日                        総発行部数:     1247部                          (1999年9月16日現在) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆--------------------------------------------------------- ●「いづつ屋」ホームページ開設!!  Web新撰組ご用達のお肉屋さん「いづつ屋」が、この度  インターネット通信販売を始めました。  お味は、Web新撰組メンバー一同が保証いたします!!  めちゃくちゃ美味しいお肉を、是非ご賞味下さいませ。  http://www.tanba-izutsuya.com/ ---------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆目次◆ ●Web新撰組ニュース ●今日の献立:出張ぜんまいはぎちゃんその4 ●予告 ●はぎちゃん今日のひとこと ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆--------------------------------------------------------- ┏━━━━━━━━━━━━▼全商品 送料無料▼━━━━━━━━━━━━━┓ ┃ ケータイ編集王2000・着メロ編集王・デジカメ編集王 他  特価販売中!┃ click< http://a.clickincome.net/md/dk?mid=e39071378b7111c8dd274a7b87bac9e0 > ---------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ●Web新撰組ニュース   Web新撰組メンバー執筆のCGI参考書。   「Perlで作る楽しいCGI」は、エーアイ出版のエーアイムックNo.237。   内容についての御質問は、新撰組ML(http://www.web-kyoto.com/ml/)へ。 ●今日の献立:出張ぜんまいはぎちゃんその4   今回も出張ぜんまいはぎちゃんの続きです。   出張ぜんまいはぎちゃんは、他の人が別のサーバーに設置しているチャットに 人口無能のぜんまいはぎちゃんの発言を無理やり書き込むCGIです。   例えば、現在ぜんまいはぎちゃんはこちらに出張しています。   http://www.okosama.net/cgi/chat2.cgi   (おこさまさん作「二日酔いげろげろちゃっと」)   「ぜんまいはぎちゃんボタン」を押すとぜんまいはぎちゃんの発言が書き込まれ ますが、これは、おこさまさんの所にぜんまいはぎちゃんを設置しているのではなく わたしが作ったものが書き込みに行っています。   さて今回は、前回紹介したサブルーチンを使って、よそのチャットの書き込み から、データを盗みましょう。   よそのチャットのURLを仮に http://www.karikari.ne.jp/~karikari/cgi-bin/karikarichat.cgi   サーバーのアドレスを www.kh.rim.or.jp   とします。   また、ぜんまいはぎちゃんは、CGI100番勝負No.38   http://www.web-kyoto.com/100/chat/no38/   に付属のzhagi3.plを使います。 ------------------------------------------------------------- 1:#!/usr/local/bin/perl 2: 3:require 'jcode.pl'; 4:require './www.pl'; 5:require './zhagi3.pl'; 6: 7:$chaturl="http://www.karikari.ne.jp/~karikari/cgi-bin/karikarichat.cgi"; 8:$chathost="www.karikari.ne.jp"; 9 10:$hhttp_status=0; 11: 12:$hhttp_status=&httpSend($chaturl,$chathost,1,90); 13:&error(500) if($hhttp_status == 0); -------------------------------------------------------------   今回は解説の為に行番号を付けてみました。   4行目で前回作成したwww.plを、5行目でzhagi3.plを読み込みます。   7,8行目は、それぞれ盗んでくるチャットのURLとホスト名です。   12行目で、チャットの書き込みを得ています。   &httpSend($chaturl,$chathost,1,90);   のオプションのうち3つ目は、読み込んだデータを@buf変数に入れる、というフ ラグです。   このサブルーチンは正常終了すると1を返しますので、もし$hhttp_statusが0の ままであれば、エラー表示を行います。   さて、ここまでで、なんとも簡単によそのチャットのデータを取ってきてしまっ たのですが、このデータの中から最新の書き込みを抽出するにはどうしたらよいで しょう?   そこで、今度は http://www.karikari.ne.jp/~karikari/cgi-bin/karikarichat.cgi   のソースを見てみます。   ブラウザのページのソースを表示、をクリックすると、こんなものが表示され ます。 ------------------------------------------------------------- [Top]

[Write or Reload]
はぎちゃん:ほえほえ〜〜
255.255.255.255 at 9/16.12:49.JST
はぎちゃん:ほえほえ〜〜
255.255.255.255 at 9/16.12:49.JST
はぎちゃん:ほえほえ〜〜
255.255.255.255 at 9/16.12:49.JST
-------------------------------------------------------------   これを見ると、16行目が、どうやら最新の書き込みのようです。   という事は、@bufの16番目の値、$buf[15]が最新の書き込み行となります。   では、この行から名前と書き込みを抽出しましょう。   先ず、
はぎちゃん:ほえほえ〜〜から後ろをカットします。   $mess = $buf[15];   $mess = (split(/
/,$mess))[0];   ほえほえ〜〜の後には
があるので、これを区切りにしてその前の部分を抽出 しました。これで、$messの値は、「
はぎちゃん:ほえほえ〜〜」 になります。   次に、:で区切って、   ($name,$message)=split(/<\/b>:/,$mess);   これで、$nameに「
はぎちゃん」$messageに「ほえほえ〜〜」が 入ります。   最後に、名前の前についている余分なHTMLタグを取ります。   $name = (splir(//,$name))[1];   では、この部分までを作りましょう。 ------------------------------------------------------------- 14:$mess=$buf[15]; 15:&jcode'convert(*mess,'euc'); 16: 17:$mess = (split(/
/,$mess))[0]; 18:($name,$message)=split(/<\/b>:/,$mess); 19:$name = (splir(//,$name))[1]; -------------------------------------------------------------   盗んできたチャットのデータの文字コードが何なのかわかりませんので、 15行目でデータをEUCコードに変換しています。   こんな事してていいのだろうかと思いつつ・・・続く ◆予告◆-------------------------------------------------------- ●次回は、ぜんまいはぎちゃんの言葉を作ってチャットに送り付けます。 --------------------------------------------------------◆予告◆ ◆PR◆--------------------------------------------------------- ☆学校の授業や家庭学習、自由研究や調べ学習、エンターテインメントもお任せ。 ☆子供のための新型検索エンジン『JERFI(じぇるふぃ〜)』お試し下さい。 click< http://a.clickincome.net/md/dk?mid=75f2587e87ffc2d024315d65433e0425 > やりたいって言ったら、今すぐやりたいんだい!! いや〜んえっちぃ〜〜、、、じゃないよ、ゲームのお話し。 欲しいソフトが発売日に手元に届きます。こりゃええわい。 てなわけで、こちらにどうぞ。 http://takafumi.grabit.net/powersoft/ ---------------------------------------------------------◆PR◆ このメールマガジンは、 Subject部が、CGI3分クッキング【Vol.番号】は、まぐまぐ様にて、 ( http://www.mag2.com/ ) Subject部が、CGI3分クッキング Vol.【番号】は、Macky様にて、 ( http://macky.nifty.ne.jp/ ) Subject部が、CGI3分クッキング番号 は、Pubzine様にて、 配布致しています。 メールマガジンの解除について まぐまぐ様の解除は、 http://www.web-kyoto.com/dp/3min/ に、削除及び登録フォームを用意致しております。 Macky様の解除は、 http://macky.nifty.ne.jp/ を参考して下さい。 Pubzine様の解除は、 http://www.pubzine.com/srchid.asp?keyword=1379 に、削除及び登録フォームを用意致しております。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆はぎちゃん今日のひとこと◆------------------------------------------  ●新企画用CGI作成の為、へろへろ状態です。   来週には、その成果をお見せできる。。。かも。 ------------------------------------------◆はぎちゃん今日のひとこと◆ ◆お願い◆ このマガジンについてのお問い合わせは、WEB新撰組メーリングリストで、 お願い致します。 参加方法は、 http://www.web-kyoto.com/ml/ を参考にして下さい。 ◆担当者◆ 本文文責    :Web新撰組プログラマー萩原逸郎 Web新撰組  :http://www.web-kyoto.com/ ◆協力ありがとう◆ おこさま本舗 http://www.okosama.net/ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■