配布スクリプトの読めない部分を解説しちゃる
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
垢版 |
04/09/11 04:02:39ID:flbBPOWm
Perl、PHPなんでもござれ。
配布スクリプトの中でよくわからん構文などがあったら解読&解説しちゃる。
0002nobodyさん
垢版 |
04/09/11 04:23:23ID:???
ここは他人のソースが読めない>>1=本7の教えてスレです
00031
垢版 |
04/09/11 05:10:08ID:???
>>2
漏れがスレ立てるといっつも本7とか言われるYO!
0004nobodyさん
垢版 |
04/09/11 06:34:09ID:???
つまり糞スレしか立ててないということだな。
0006nobodyさん
垢版 |
04/09/11 11:37:08ID:???
じゃwemaっていうWIKI派生のスクリプト一式お願いします。
00071
垢版 |
04/09/12 00:05:31ID:???
>>5
マリガトー。

>>6
あくまで一部。
数行がどうしてもわからん!ってときに解説します。
0008nobodyさん
垢版 |
04/09/12 07:58:08ID:???
>>1
解説してください。
$str =~ s/"/"/g;#"
セミコロンのあとの#"って意味があるんでつか?

答えは漏れも知ってるんでつが、>>1さんの実力が知りたいんでつ。
0009nobodyさん
垢版 |
04/09/12 10:00:29ID:???
>>1
Wemaの一部ということで。
wema.cgi:289
if id.nil? or id == ''
nfn = "#{dir}/#{Time.now.strftime("%Y%m%d%H%M%S")}#{$$}.txt"
else
nfn = "#{dir}/#{id.sub(/id/,'')}.txt"
end
ここの処理は何やってるんでしょ?
0010nobodyさん
垢版 |
04/09/12 16:11:27ID:???
よ-し、お姉さん質問しちゃうよ--
jcode.plの読み方がわかりません。
今はじぇーこーどぴーえると読んでいますが
もっとかわいい呼び方を教えてください。
0011nobodyさん
垢版 |
04/09/12 17:36:04ID:???
おまいら、あんまり>>1をイジメんなよ。
もう出てこれないだろうなw
0012nobodyさん
垢版 |
04/09/13 06:30:46ID:???
これでも>>1は懲りずに別の教えてスレをまた立てるんだろうな
0013nobodyさん
垢版 |
04/09/13 06:44:46ID:???
なんだ、>>1 は一つも答えずに逃げたのか。
0014nobodyさん
垢版 |
05/02/03 11:22:25ID:xy56k4eq
>>1ももういないと思うので>>8の答えキボンage
0015nobodyさん
垢版 |
05/02/03 14:58:30ID:???
意味っつーかコメントアウトしてるじゃん。
0016nobodyさん
垢版 |
05/02/03 15:46:05ID:???
色が変になるのを止めてるんだろ
0017nobodyさん
垢版 |
05/02/03 17:14:06ID:???
"が1個しかないとエディタによっては色が変になってしまうってコトですね
そのため対応する"をコメントにして記入してあると。
001815
垢版 |
05/02/03 23:20:08ID:???
漏れの使ってるのではならない。
でも一つ目の"以降が行末まで全部色が変わっちゃうから"をエスケープしてる。
0020nobodyさん
垢版 |
2005/12/13(火) 03:38:14ID:T2HC5b4/
マジレス希望。
グラフ出力のPHPコードらしいのだが、よく分からん。
誰か頭のいい人解説して下さい。

sub graphGet {
my($len,$out,$min);
my($max,$now,$width,$height,$gif_name,$gif_name2) = @_;
if($now){
$len = int($now / $max * $width);
if($len > $width){
$max = $width . 'px';
$out = "<img src=\"$GIF_URL/$gif_name\" width=\"$max\" height=\"$height\">";
}elsif($len <= 0){
$aaa = $max;
$max = $width . 'px';
$out = "<img src=\"$GIF_URL/$gif_name2\" width=\"$max\" height=\"$height\" alt=\"$aaa / $now\">";
}else{
$max = $len . 'px';
$min = $width - $len;$min = $min . 'px';
$out = "<img src=\"$GIF_URL/$gif_name\" width=\"$max\" height=\"$height\">";
$out .= "<img src=\"$GIF_URL/$gif_name2\" width=\"$min\" height=\"$height\">";
}
}else{
$max = $width . 'px';
$out = "<img src=\"$GIF_URL/$gif_name2\" width=\"$max\" height=\"$height\" alt=\"1\">";
}
return $out;
}
0022nobodyさん
垢版 |
2005/12/13(火) 08:04:19ID:???
本当にありがとうございました
0023nobodyさん
垢版 |
2005/12/13(火) 10:29:49ID:T2HC5b4/
>>21
え。perlなの?
解説よろしくお願い!
0024nobodyさん
垢版 |
2005/12/13(火) 11:55:49ID:???
>>23
#grapGetという名前の関数(サブルーチン)を定義
sub graphGet {
#関数内だけで使うmy変数を宣言
my($len,$out,$min);
#引数を変数に代入
my($max,$now,$width,$height,$gif_name,$gif_name2) = @_;
以下略
#$outを戻り値にして終了
return $out;
}
0025nobodyさん
垢版 |
2005/12/13(火) 22:19:19ID:???
>>20
このスクリプトは恐らく何かの改造版。
一応動いてはいたがある日改造者のもとへ一通のメールが来た。
しかし改造したやつのレベルは低くオリジナルにあった不具合を解決できるはずもなかった。
「いい機会だ。このままサイトを閉鎖しよう」
そう思い立った改造者はユーザーに何の挨拶もなく消えていったのであった。
数年後、ユーザーがネットを検索していると得体の知れないサブルーチンだけが
キャッシュとして残っていることに気づいた。
「まさかこの関数はあのスクリプトのものではないか!」
ユーザーはあの時の思いを熱く語ろうとしている。
そんな関数。
0026nobodyさん
垢版 |
2005/12/14(水) 07:37:52ID:???
>>20
$max, グラフの最大値
$now, グラフの表示値
$width, グラフ全体の幅
$height, グラフの高さ
$gif_name, 表示値用の画像
$gif_name2 グラフ残りの部分用の画像

$out グラフのhtml
0027nobodyさん
垢版 |
2005/12/18(日) 06:28:39ID:Sn4KdT5Z
>>24
お〜!ありがとうございます。
以下略と言うのが、ナマゴロシ。。
やっぱり、コレくらいのスクリプトだったら、すぐにパパパって分かっちゃうもんですか?

>>25
ん〜、イミフだが 自作だって言ってたような気が。。。

>>26
レスありがとうございます。
ところで、$gif_name2 グラフ残りの部分用の画像
と言うのは何のことですか??背景?
0028nobodyさん
垢版 |
2005/12/19(月) 08:26:48ID:???
>>27
┌───────────┬────────┐
│     $gif_name      .│  $gif_name2   │
└───────────┴────────┘
002927
垢版 |
2005/12/20(火) 21:34:54ID:HQXojDYh
>>28
ありがとう。
$gif_name の部分がグラフで
$gif_name2 は枠内の、グラフじゃない部分の埋め合わせのためにあるんだね!背景として枠を調整するためにある。という解釈でいいのかな?
0030nobodyさん
垢版 |
2006/01/03(火) 22:38:47ID:JH1IlXy/
$page = ($page == int($page) ? $page : int($page + 1));

これの ? と : の意味が良くわかりません・・・。
どなたか教えてくださいm(_ _)m
0032nobodyさん
垢版 |
2006/01/04(水) 10:05:01ID:???
usr/bin/perl

sub uri_decode{
my $str = shift;
$str =~ tr/+/ /;
$str =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;
return $str;
}

このpack('H2', $1)の意味がわかりません。教えてください。
検索してみたんですが'H'が意味する「ニブル」ってどういうものですか?
'$1'ってところも記述ミスな気がするんですが
0033nobodyさん
垢版 |
2006/01/04(水) 11:02:02ID:???
>>32
http://e-words.jp/w/E3838BE38396E383AB.html
http://www.kt.rim.or.jp/~kbk/perl-5.8/perlretut.html#extracting_matches

例えば $str = "%41"; の場合、$1 には "41" が代入される。これを "H2"、
つまり2桁のニブル表現と解釈してバイトデータに pack する。

"41" という文字列 → ニブルの 4 と 1 → 二進数の 0100 と 0001 →
pack して 01000001 → 十進値 65 のバイトデータ → ASCII の "A"
003432
垢版 |
2006/01/04(水) 12:18:10ID:???
>>33
詳しくありがとうございます。
良く分かりました。

でも、"$1"と言うのはこの場合許されるんでしょうか?
スカラ名の最初の一文字に数字を使用するのは好ましくないですよね?
"$i"のミスタイプかも知れないのですが…
ここらへんお願いします
0035nobodyさん
垢版 |
2006/01/04(水) 12:33:34ID:???
>34
$1、$2・・・は「スカラー変数」じゃないぞ。
「正規表現に関する特殊変数」だ。
0036nobodyさん
垢版 |
2006/01/04(水) 13:33:36ID:???
>>34
とりあえず示された URL のページくらいは読もうか。
perlvar にも $<digits> として載っている。
http://perldoc.jp/docs/perl/5.6.1/perlvar.pod

>>35
$1、$2 …は「ユーザ定義変数」ではないがれっきとした「スカラー変数」
なので、その表現では君が本当に言わんとしている事が正しく伝わらない。

ちなみに「ユーザ定義の変数名や関数名に使える文字列」を指すには
「識別子」という単語があって、/^(?:[A-Za-z]|_\w)\w*\z/ にマッチする
ものとなる。 http://www.kt.rim.or.jp/~kbk/perl5.005/perldata.html

この命名規則に沿っていないのにエラー無しに使えていれば、それは
特殊変数という事だ。シンボリックリファレンスや encoding プラグマを
使えば無茶な名前も付けられるがお勧めはしない。
0037nobodyさん
垢版 |
2006/01/04(水) 14:03:19ID:ClLRhAWO
このスクリプトの書き方で、おかしい所を指摘してくれませんか?

#!/usr/bin/perl

require "../lib/jcode.pl";
require "../lib/mimew.pl";

$mailto ='hoge@hogehoge.jp';
$subject ='タイトルだよ';
$mail = $cgi->('mail');
$name = $cgi->('name');
$kana = $cgi->('kana');

$subject = mimeencode($subject);

open(MAIL, "| /usr/lib/sendmail -t");

print MAIL "To: $mailto\n";
print MAIL "From: $mail\n";
print MAIL "Subject: $subject\n";
print MAIL "Content-Type: text/plain;\n\n";
print MAIL "お名前は= $name\n";
print MAIL "フリガナは= $kana\n";
close(MAIL);

年始早々、このような低レベルの質問で申し訳ありません。
よろしくお願い致します。
0039nobodyさん
垢版 |
2006/01/04(水) 14:56:33ID:???
>>35-36
助かりましたありがとうございました
今外出中で、携帯なので帰ったらURL見させてもらいます。
004037
垢版 |
2006/01/04(水) 23:33:56ID:ClLRhAWO
>>38
なになに?どういうこと?
見たけど何かヒントあったの?
あっちで聞けってことか...orz

教えてくれよ
いや、教えてください。
0041nobodyさん
垢版 |
2006/01/05(木) 00:23:03ID:???
>37はどこかで配布されてるスクリプトなのかね?
そうでないのならスレ違いだ
0042nobodyさん
垢版 |
2006/01/05(木) 01:55:21ID:???
>37

20世紀のスクリプト
004337
垢版 |
2006/01/05(木) 02:01:34ID:+yKIo2wf
>>41
スレ違い須磨祖。他逝ってくる
0044nobodyさん
垢版 |
2006/04/12(水) 17:45:59ID:AxAuwUbH
スクリプト自体は少し前のもので、現在はもう作者の継続サイトはないようです。
しかも質問部分は長いのですが、「それでもよい」という方がいらっしゃいましたら解説お願いします。
この中の database.cgi の 312 行目以降すべて (キーワード処理部分と検索部分) が
全般にわたってまったくわかりません。一挙でなくて少しずつでもよいので、各行最後までお願いします。

http://hpcgi2.nifty.com/wanchan/dl.cgi/database.lzh?name=database.lzh&rootcheck=1
004644
垢版 |
2006/04/13(木) 16:34:10ID:C+gS5L5K
312 行目以降をお願いします。
0048nobodyさん
垢版 |
2006/04/14(金) 04:12:35ID:???
>>47
スクリプトについているコメント通りとしか言いようがないです。
どこがわからないのか教えてください。
0049nobodyさん
垢版 |
2006/04/14(金) 04:40:18ID:AD++CmCG
じゃあ、とりあえず
if(substr($buf, 0, 3) != '+OK') die($buf);
$buf = _sendcmd("USER $user");
$buf = _sendcmd("PASS $pass");
$data = _sendcmd("STAT");//STAT -件数とサイズ取得 +OK 8 1234
sscanf($data, '+OK %d %d', $num, $size);
を解説してもらえませんか
0050nobodyさん
垢版 |
2006/04/14(金) 06:24:08ID:???
まず、_sendcmdという関数が下の方にあると思うけど
これは、POPサーバーにコマンドを送って結果の一行だけ受け取る関数

で、それを使って
USER PASSの各コマンドでユーザー名とパスワードを送って
STATで件数とサイズを取得している。
これらはPOPプロトコルのコマンドだから「POP コマンド」あたりでググると意味がわかると思う。
0051nobodyさん
垢版 |
2006/04/14(金) 07:32:35ID:???
>>49
それの何がわからないというの
文字列$bufの先頭3文字が'+OK'じゃなかったら$bufを表示して終了。
_sendcmd関数に引数"USER $user"を渡して戻り値を$bufに代入。
引数"PASS $pass"で同上。
引数"STAT"で戻り値を$dataに入れる。$dataのフォーマットはコメントに記載
$dataから件数とサイズをそれぞれ$numと$sizeへ代入する。
005244
垢版 |
2006/04/14(金) 14:03:37ID:GvAB5r46
お願いします。
0053nobodyさん
垢版 |
2006/04/14(金) 14:38:15ID:???
Perlで
1 while $MSG =~ s/^(\d+)(\d\d\d)/$1,$2/;
の頭の"1"ってどういう意味ですか?
0054nobodyさん
垢版 |
2006/04/14(金) 15:25:00ID:???
>>52
>質問部分は長いのですが、「それでもよい」という方がいらっしゃいましたら解説お願いします。
そんな暇な人はいらっしゃらないようですね。
0055nobodyさん
垢版 |
2006/04/14(金) 19:51:52ID:???
wikiのページを見ていたらこんなのがありました。
↓↓↓

#$fp = fopen( "php://stdin", "r" );
#$response = trim( fgets( $fp ) );
#fclose( $fp );
$response="yes";

これは、どういうことなのでしょうか?
php://stdinとは何なのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況