★ INCM Plug-in開発掲示板 ★ TinyGrass Ver0.32a [戻る]
[0126] 00/08/09 07:50 一 五明(YMjHyfzdazU): ▼ Perl入門(5-1) HTMLから名前やタイトルの抽出・準備
メインループ(第3回に書き換え対象として示した部分)の最初の方に
while(<HTTP>){ # 区切り毎に、ファイル終端まで $_に読む
というのが出てきます。
区切り($/)さえきちんと設定できていれば、書き込み1つ毎に特殊変数の
「$_」に読み込まれて、ページの終端まで繰り返してくれるということです。
ただし、投稿者名もタイトルも日付も本文も全部くっついた状態です。
ので、まずそこから各要素を抽出する必要があります。その際に使うのが正規
表現であり、パターンマッチなのです。
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0125] 00/08/04 08:41 GETWILD'74(Qk25uvB38zc): Re:122)RE: というわけで一応再開
一 五明さん、こんにちは。
私はこの講座はもうないだろうと諦めていました。
しかし、再開して喜ばしい限りです。
ありがとうございます。
http://www07.u-page.so-net.ne.jp/yd5/march-o/
[0124] 00/08/03 21:15 里道(bJ0kONRj/FY): likeの設定なんですけど
皆さんはじめまして、里道です。
perl の学習を始めたばかりですが like の設定でとまどってます。
題名の中に「、」や「。」がある場合その位置で題名が終了してしまいます。
例)
こんにちは、里道です。
↓
こんにちは
上記のような場合どのよう設定にすればよろしいのでしょうか?
(他のプラグインでも同じ様なことがあります。)
[0123] 00/08/02 22:09 きゃしあす(Z4Suau.SJR2): Re:122)RE: 再開有難う御座います。
こんにちは、再開希望しておりましたきゃしあすです。
講座再開、大変嬉しく思います。
> 「覚えるだけ」だとつまらないので、なるべく「実践しながら覚えて
>いく」形を取りたいのですが、難しいですね。
そうですね、実践しながらだと覚える効率は飛躍的に高まりますからね。
> 今回は実践的な内容も無いので、Perlかじったことのある人にはほとんど
>役に立たないと思いますが(^^;
いえいえ、ワタクシなど、Perlほとんどかじったことのない人ですので、
「ああ、そういう事だったのか」とひざを打ってばっかりです。
おかげでひざが擦り切れてしまいました(座布団抜かれそう…)。
うーむ、いかんいかん、こんな落とし方では凍えてしまう…。
それはさておき。
これからも不定期講座、楽しみに待ってます。それではまた。
[0122] 00/08/01 09:58 一 五明(YMjHyfzdazU): Re:115)というわけで一応再開
前回の最後に、次回は名前等の抽出、と書きましたが、その前に解説
する必要のあることが結構あることに気づいてしまったのでした。
「覚えるだけ」だとつまらないので、なるべく「実践しながら覚えて
いく」形を取りたいのですが、難しいですね。
今回は実践的な内容も無いので、Perlかじったことのある人にはほとんど
役に立たないと思いますが(^^;
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0121] 00/08/01 09:58 一 五明(YMjHyfzdazU): ▼ Perl入門(4-4) 文字列、文字式
変数に代入したり、print文(後で解説)で出力するのに使う文字列は "〜" や
'〜' で囲んで記述します。
'〜'の場合は、囲んだ文字がほとんどそのまま文字列になります。
"〜"の場合は、特殊文字や変数を埋め込むことが可能です。例えば「\n」は改行
コードを表す特殊文字で、それを書いた位置に改行コードが埋め込まれます。
変数を埋め込む場合は、例えば
"$num番目"
という表記は、変数$numが1なら「1番目」、10なら「10番目」という文字列を
表します。
文字列、変数はピリオド(.)でくっつけることも出来ます。
"あいうえお"
"あいう"."えお"
上の2つは同じ文字列を表します。
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0120] 00/08/01 09:58 一 五明(YMjHyfzdazU): ▼ Perl入門(4-3) サブルーチン集 CMLIB15(Ver0.25)で使っている変数
システムが使ってなくても、私のサブルーチン(CMLIB15.PL)の内部で使って
いるために、(意味を把握せずに)値を変えてしまうとまずい変数というのがあ
ります。本来サブルーチン内では変数をローカル化(サブルーチン内でのみ有効
にする)するのが良いとされますが、プログラムを簡単にするためにこうしました。
以下はその一覧です(いくつか忘れてる可能性有り(^^;)
$host incm_bbs.iniから読んだURLのホスト部分(例:www.probider.ne.jp)
$uri URLのサーバー内位置(例:/~user/cgi-bin/bbs.cgi)
$proxy プロキシサーバーのアドレス
$port HTTPのポートNo.
$user 認証データー
$param1 フォルダプロパティのparam1
$param2 フォルダプロパティのparam2(大抵未読ポインタか取得ページ数)
$adcache URLの名前を数値アドレスに変換してキャッシュしておいたもの
$local HTTPサーバーから読む場合0、ローカルコンバート時に1
$newptr 空白でも0でもない場合、終了時にparam2に置き換わる
(大抵未読ポインタ)
$upurl 空白でも0でもない場合、終了時に送信先のURLに置き換わる
$charset 空白でも0でもない場合、終了時に送信時の漢字コードに置き換わる
(現在設定できる値は「S-JIS」か「EUC」のみ)
もちろん私の作ったサブルーチンを使わずにプラグインを作成する場合は
無関係です。
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0119] 00/08/01 09:58 一 五明(YMjHyfzdazU): ▼ Perl入門(4-2) 特殊変数
$の次がアルファベットでない変数というのもあります。これらはPerlのシス
テムが使っている特殊変数で、$_に関しては、ほぼ自由に書き換えが可能ですが、
他は意味を把握せずに書き換えると異常動作を起こします(読み込むのは自由)。
最初に書き換えた $/="<hr"; の「$/」も特殊変数で、ファイルハンドルや
ソケットから読み込む際の区切りを意味します。
$1〜$9と言うのもよく出てきますがこれも特殊変数で、$1なら「直前のパター
ンマッチ(後述)が成功した場合、その中の括弧で括られた1番目の部分」、$2
なら2番目…です。
なお、例外的に「1文字目がアルファベットな特殊変数」もあります。配列変数
には結構ありますが、配列変数以外では「$ARGV」(空のファイルハンドルを使う
場合の現在の読み込みファイル名。INCMプラグインではまず関係無し)くらいだっ
たと思います。
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0118] 00/08/01 09:58 一 五明(YMjHyfzdazU): ▼ Perl入門(4-1) 変数と代入
頭に「$」が付いてるのが変数で、文字列や数値を記憶しておくことが出来ます。
また「(変数名)=(値);」とすれば変数に値を記憶させる(代入)することが出来
ます。値の所には数字や、"〜"や'〜'で囲まれた文字列が入ります。
$num=1;
$date="2000/01/02,03:45";
ちなみに「値」は文字列や数値、文字式、数式でも構いません。
変数名は、基本的に1文字目($の次)がアルファベット、2文字目以降が英数字
であれば好きな名前を付けられ、メモリの許す限りいくらでも使え(作れ)ます。
大文字小文字は区別されます。
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0117] 00/08/01 07:47 一 五明(YMjHyfzdazU): Re:116)TGrassは編集/削除が面倒なのに〜
とりあえず被害が出ないようメールアドレスだけ伏せて、本文は
見せしめ(笑)に残しておきました。
まあ反論とか書いても書いた本人は見てないケースが多いの
ですが。
何かサーチエンジンの検索ロボットを応用したようなやつで、
ひたすらリンク辿ってTEXTAREA含んだフォームがあったら見
境無く書き込むようなツールで書いてる場合も多いようですね。
そこまででなくても、宣伝目的の掲示板書き込み専用ツール
みたいなものもあって、反オートパイロット感情煽る一因になっ
てたりして…
要するにINCMも間接的に被害受けてるってことではあります。
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0116] 00/08/01 01:21 GAE(vbbj25HUgnk): Re:114)あらら
こっちにも来てますね(笑)
INCM掲示板2の方は削除しましたが…あほだなあ(笑)
http://www.gld.mmtr.or.jp/~naofumi/incm/
[0115] 00/07/31 23:19 きゃしあす(Z4Suau.SJR2): INCMのためのPerl入門の再開予定はありますか?
一さん、みなさん、はじめまして。
先日来、GAEさん作のINCMを使いはじめ、感動しているきゃしあすと申します。
テレホ無しの環境にはとても嬉しいです。INCMに私の家計は大助かりです。
さて、こちらの掲示板の過去ログを読んでおりましたら、1月ごろに一さんがされていた
Perl講座をみつけました。
小生、現在Perl初心者ながら、Plug-inを作ろうといろいろ勉強しておりまして、
この講座が再開されますと、非常に参考になるのです。
もしもお時間がありましたら、再開のほど、御一考戴ければ幸いです。
それではまた。
[0114] 00/07/31 17:37 K.K(itLmXlzDs12): さぁ、君も在宅ワークで高収入を!!
Eメールを送ることによって今から2,3ヶ月後には200万円以上、最終的には
1800万円以上の副収入を得ることができます。無理だとおもいますか?
だまされたと思って、メールをください。決してだまされません。
まずメールで詳細を請求してお読みください。納得のいく収入プランです。
いつの日か幸運が必ずやってくるとあなたが信じるならこの書き込みをみたこと
が幸運なのです。100%の確率で確実に成功します。みんなが始めたらもう遅
いのです。はやいもの勝ちです。さあ、あなたの夢をかなえましょう。
メール:xxxxxxxx@xxx-xxx.xx.xx
[0113] 00/06/21 14:46 GETWILD'74(Qk25uvB38zc): Re:110)RE: ソース見てみないと何とも言えませんが
> 特殊変数の「$/」がファイルハンドルやソケットから読み出すときの区切
>りですので、例えば
おっしゃる通りにしたら、ローカルでは成功しました。
いざ、本番と思ったら記事自体がうまく認識されません。
同じCGIなのになぜでしょう?
初心者にはちょっとお手上げです。
しかし、いろいろと勉強になったので質問して良かったです。
どうもありがとうございました。
http://www07.u-page.so-net.ne.jp/yd5/march-o/
[0112] 00/06/19 18:12 てら(reTFQR2yizQ): Re:111)RE: フォルダプロパティのコメント表示
ヘルプがおなじコメントエリアに表示されるとつかいにくいかな?
いったりきたりで。字も小さいし。
ヘルプはいまのままでいいかな。
「#」がないとエディタで色が変わってくれない(^^;
[0111] 00/06/18 20:25 一 五明(YMjHyfzdazU): Re:109)RE: フォルダプロパティのコメント表示
>#[COMMENT]
> #掲示板に巡回できないような変更がされている場合があるかも。
> #アドレスにはツリー表示のアドレスを書いてね。
>#[/COMMENT]
私は最後の方の「__END__」以下にちょっとしたコメント入れてる場合が
ありますが (Perlは__END__以下を無視するので)、 これだとスクリプト
の最後にあるので、フォルダプロパティ読むたびに時間掛かるんですよね。
<< '[COMMENT]
コメント
[/COMMENT]
だと各行の頭に「#」を付けずに済みますが、実行時にその分メモリ食いますし、
一長一短です。
5〜6行程度をやつを #[/COMMENT] 〜に書いて、プラグインの
ヘルプボタンを押せば__END__以下を表示にすればいいかも。
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0110] 00/06/18 20:25 一 五明(YMjHyfzdazU): Re:108)RE: ソース見てみないと何とも言えませんが
>> if(s/\[<b>(\d+)<\/b>\]//){ # ▼親記事
>ここは最初のページの一番最初の記事はうまく判定してるので
最初のページと2ページ目以降で出力が違う場合もあるようです。
>最初の書き込みの直前まで読み出すというのが、どうやったらいいのか
>良く分からなくて・・・。
特殊変数の「$/」がファイルハンドルやソケットから読み出すときの区切
りですので、例えば
〜〜〜〜〜〜〜〜〜〜〜〜
(送信フォーム)
<hr>
<table>
(書き込み)
</table>
<table>
(書き込み)
</table>
:
〜〜〜〜〜〜〜〜〜〜〜〜
のようなHTMLなら
$/="<hr>"; $_=<HTTP>; # 送信フォーム部分読み飛ばし
$/="<table>"; # 通常の区切りに戻す
while(<HTTP>){ # 以下いつものメインループ
:
}
のようにすればokです。
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0109] 00/06/17 17:19 てら(reTFQR2yizQ): フォルダプロパティのコメント表示
#[DIALOG]
#[/DIALOG]
と同じように
#[COMMENT]
#[/COMMENT]
のあいだに書くことでどうでしょう。
こんなかんじで
#[COMMENT]
#掲示板に巡回できないような変更がされている場合があるかも。
#アドレスにはツリー表示のアドレスを書いてね。
#[/COMMENT]
コメントにはヘルプとかを全部書くのではなく表示エリアからから考えると
5〜6行ぐらいのものがいいかと。
[0108] 00/06/15 10:59 GETWILD'74(Qk25uvB38zc): Re:105)RE: ソース見てみないと何とも言えませんが
レスありがとうございます。
> if(s/\[<b>(\d+)<\/b>\]//){ # ▼親記事
ここは最初のページの一番最初の記事はうまく判定してるので
OKだと思うんですが。
> 最初のifの条件(システムによって違うはずなので変えてるはず)
>を見直すか、2ページ目以降だったら読み出しのwhileループに入る
>前に、最初の書き込みの直前まで読み出すすれば何とかなるのでは
>ないでしょうか。
最初の書き込みの直前まで読み出すというのが、どうやったらいいのか
良く分からなくて・・・。
たぶんこれが原因じゃないかという気はしてます。
http://www07.u-page.so-net.ne.jp/yd5/march-o/
[0107] 00/06/15 07:35 一 五明(YMjHyfzdazU): Re:106)3ページ目までは取れるのなら
取りあえず公開してしまう手もありますね。
私が公開してるのにも不完全なの多いですから(^^;;
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0106] 00/06/14 08:51 ノリ(rhTxwAS4bD.): Re:104)RE: プラグイン開発協力のお願いについて
GAEさん ご返事をありがとうございます。
早速ですが、ソースコードはメールでお送りさせていただいたら、よろしいのでしょうか。
>Perlは勉強中なのでそれなりにしかわかりませんが、
>それでもよければ(笑)
[0105] 00/06/14 07:29 一 五明(YMjHyfzdazU): Re:102)ソース見てみないと何とも言えませんが
ぷち☆ボードでは、親記事か子記事か判断する部分が
if(s/\[<b>(\d+)<\/b>\]//){ # ▼親記事
(中略)
}else{ # ▼返信記事
(中略)
}
となってます。たぶんこの判定ミスだと思います。
「一番最初の記事」は、送信フォーム等の余計なものを一緒に読み
込むケースが多いので、誤判定の可能性が高くなります。
最初のifの条件(システムによって違うはずなので変えてるはず)
を見直すか、2ページ目以降だったら読み出しのwhileループに入る
前に、最初の書き込みの直前まで読み出すすれば何とかなるのでは
ないでしょうか。
http://kt.sakura.ne.jp/~timeflow/MENU.HTM
[0104] 00/06/13 21:56 GAE(vbbj25HUgnk): Re:103)RE: プラグイン開発協力のお願いについて
> どなたかソースコードをみていただける方は、いらっしゃいませんでしょうか。
Perlは勉強中なのでそれなりにしかわかりませんが、
それでもよければ(笑)
http://www.gld.mmtr.or.jp/~naofumi/incm/
[0103] 00/06/13 11:59 ノリ(rhTxwAS4bD.): プラグイン開発協力のお願いについて
プラグイン開発の初心者(Perlそのものも全くの初心者)ですが、以下の掲示板を読み込むためのプラグインを一様開発のWebforum用プラグインをベースに作っています。
ただ、なぜか複数ページを読み込めるようにしているのですが、3ページ目以降が読み取れません。
なんど、ソースをみても原因が分かりません。
どなたかソースコードをみていただける方は、いらっしゃいませんでしょうか。
無理を申しますがよろしくお願いします。
http://www.nakka.com/wwwc/bbs/wwwc.cgi
[0102] 00/06/11 20:03 GETWILD'74(Qk25uvB38zc): ログの読み込み
前の書き込みで、読み込みの方はほぼ出来ていると言いましたが、
おかしな点があります。
複数ページを読み込むと2ページ目からは、そのページの最初の
親記事が別の記事のレスになってしまいます。
No
57 正常
* 親記事No.55
56 正常
|
+--* 正常
|
+--* 異常(本来は記事No.55)
54 正常
上のような感じになってしまいます。
ページが変わると最初の記事がレス処理されてしまってるみたいです。
ページ処理の部分に問題があるのでしょうか?
1日悩んで、いろいろやってみても分かりませんでした。
元のプラグインは「プチ☆ボード」です。
どのような原因が考えられるんでしょう?
http://www07.u-page.so-net.ne.jp/yd5/march-o/
[次のページ]