トップページ⇒php
982コメント390KB

スクリプト改造工房 Part3

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。2001/05/02(水) 21:59ID:nr93n3do
「こういうふうにスクリプトを改造したいけどやりかたわかんないよー」
という人がいましたらここで聞いてください。
ひょっとしたらアドバイス出来るかもしれません。

前スレ
Part1 http://tako.2ch.net/test/read.cgi?bbs=perl&key=958370869
Part2 http://tako.2ch.net/test/read.cgi?bbs=perl&key=986986227
#板移動に伴い「CGI改造工房」→「スクリプト改造工房」に改名

なお、質問するときは
1)そのスクリプトのある場所(URL必須、拡張子".txt"でアップすればなお良し)
2)どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
を必ず明記しよう。
0898名無しさん@お腹いっぱい。02/01/31 11:40ID:d+VyXV4O
>894
なんでこいつアクセス制限にならないんだろう。
余談でした。
0899名無しさん@お腹いっぱい。02/01/31 11:43ID:d+VyXV4O
>896
ほかの部分もいじってないか?
俺が書いた変更の部分では、そういうエラーは出ない。
0900896 ◆ft.iktHc 02/01/31 12:41ID:ADMI85c9
>>899
確認ありがとうございます。
もう一度自宅に帰ったらチェックします、お手数かけました…
これで卒研間に合います...
090187802/01/31 13:37ID:HFi6HUD6
878ですが。。。この改造は無理ですかね。。。
0902名無しさん@お腹いっぱい。02/01/31 13:46ID:d+VyXV4O
>901
見てあげたい気もするけど、なんか面倒くさそうなので・・・・
話を聞いている限りでは、上手にやればちゃんと出来るよ。
がんばれ!
090387802/01/31 13:52ID:HFi6HUD6
>>902
励まし有難うございます<(_ _)>
やはり面倒ですよねぇ。
今の所エラーなどは出て無いのですが、変換させる記述が
さっぱりわからないのですよ。。。
辞書変換のtextをコピペしたらエラー出るし
自分なりに書くって言っても変換させる記述がわからないので
さっぱりです。。。
いろいろ調べてがんばってみます!
0904名無しさん@お腹いっぱい。02/01/31 13:58ID:d+VyXV4O
>903
うん、わかんない部分だけここに記述してごらん?
ソースはリンクしてあるから、必要だったら参照できるし。
この辺がわかりません、ってかんじで。
そういう感じで質問すると、かなりイイカンジの答えがもらえるところだよ。
ここは。
0905名無しさん@お腹いっぱい。02/01/31 14:38ID:HFi6HUD6
では早速。。。
アイコン掲示板にアイコン選択と同じ様な辞書変換機能を付けたいのですが、記事表示部分に
if ($comvert) {
print "<td nowrap><b>辞書変換</b></td><td><selectname=henshin>\n";
print "<optionvalue=noselected>変換無し\n";
print "<optionvalue=99selected>ランダム\n";
foreach(0 .. $#dicfile) {
if ($c_henkan eq "$dicfile[$_]") {
print "<option value=$_>$dicname[$_]\n";
}
}
と記述しましたが、cgiを実行してみたらアイコンの様な選択肢が表示されません。
そのすぐ下に#記事を展開と言うのを記述している所があるのですが、
そこにアイコンモードが記述されているので、辞書モードと言う形で
記述しなければいけないのか、またどう記述するのかで悩んでいます。
↓自分で書いたソース
http://nyanko.s6.xrea.com/x/henkan.txt
参考にしている辞書変換機能のついた掲示板のソースを見ていたら、
ログ表示と言う部分に
print "   ";
print "$regdate</font>\n";
if ( $convert == 1 && @dicfile > 1 ) {
print "<font size=-1>";
print "    \n";
print "($dicname[$conv])\n" if ( $conv ne 'no' );
print "(変換無し)\n" if ( $conv eq 'no' );
print "</font>\n";
}
と記述されていたので、それをコピペしてみたらエラーで表示されなくなってしまいました。
↓辞書変換機能の付いた掲示板ソース
http://nyanko.s6.xrea.com/x/hagure.txt
わかりにくい説明になってしまったかも知れませんが手助けして頂けないでしょうか?
0906905です02/01/31 14:43ID:HFi6HUD6
上の記事を書いていたら時間が無くなってしまいました。
もし返事をして頂ける方がいらっしゃったら、帰宅してすぐに
見て返答させて頂きます(6:30は過ぎると思われます)
宜しくお願い致します
0907名無しさん@お腹いっぱい。02/01/31 15:00ID:NGd+gL/M
>905
では早速。
気になるのは、コンバート開始のフラグが
$convert = 1;
になってるのに、そこのif文が
if ($comvert) {
になっていること。
これでは始まらないよな?if文の{ }が。
0908905です02/01/31 18:57ID:jR/jMhMW
>>907
早くに返答して頂けてたんですね、すいません。
if ($comvert) {
になっていては始まらない・・・
if ($comvert == 1) {
ですか・・・?(不安)
0909名無しさん@お腹いっぱい。02/01/31 19:03ID:NGd+gL/M
>908
いいえ。
スペルミスです。
0910905です02/01/31 19:35ID:jR/jMhMW
>>909
はっ!恥すぎる!!・・・ちょっとやってみたんですが・・・
ランダムと無変換はアイコン選択みたいな形で出てきてるんですが、
辞書ファイル名が出てきません。
新しく書き直したソースです↓

if ($convert) {
print "<tr><td nowrap><b>辞書変換</b></td><td><select name=henkan>\n";
print "<option value=noselected>変換無し\n";
print "<option value=99selected>ランダム\n";
foreach(0 .. $#dicfile) {
if ($c_henkan eq "$dicfile[$_]") {
print "<option value=\"$dicfile[$_]\" selected>$dicname[$_]\n";
print "<option value=\"$dicfile[$_]\">$dicname[$_]\n";
}
}
print "</select>\n";
print "</td></tr>\n";
}
0911名無しさん@お腹いっぱい。02/01/31 20:04ID:jR/jMhMW
あっ!わかりました!!初期設定の辞書の所を
$dicfile = ('***.dic')
$dicname = ('***辞書')
って書いてました。
頭は @ なんですよね。出てきました!
0912名無しさん@お腹いっぱい。02/01/31 20:09ID:NGd+gL/M
>911
よかったよかった。
0913名無しさん@お腹いっぱい。02/01/31 20:12ID:jR/jMhMW
>>912
そして・・・出てきたはいいんですが変換される所か
記事を投稿したら変換選択肢も消えています(T_T)
多分記事を展開する記述のあたりをいじらないとダメなんでしょうね。
ちょっと自分でやってみてまた挫折したらやってきます。
お相手と返答有難うございました!
091489102/02/01 05:07ID:???
891です。ソースをアップしてみました。
http://lightning.prohosting.com/~greeny/navi.txt

sub recommendで推奨マークのついたデータは出るのですが
カテゴリごとに並べるには、どうしたら良いのでしょうか?
しつこくてすみません。アタマ悪くて情けないっす。
0915名無しさん@お腹いっぱい。02/02/01 05:43ID:HXUzAz60
>914
$ptがカテゴリだろ?そうじゃなかったとしても、カテゴリの入っているものがどっかにあるだろ?
そいつをキーにして、
1)ソートする
もしくは、
2)$noだけを納める配列をカテゴリごとに作り、逐次読み出す
の、いずれかの方法で可能だ。
2)の方法だと、新規登録順でさらにソートが可能だ。
ま、1)の方法でも出来ることは出来るが。
たとえば、
@sort = sort { $b <=> $a } @sort;
というような方法だな。
091687802/02/01 13:48ID:wZ8UcjT+
878です。辞書変換機能をYYBBSに付けようとやってみたのですが、
どうにも行き詰まってしまいました。
>>190-911で書いた様に、アイコンの様に辞書を選択させる項目を
作るのには成功しているんですが、記事を投稿すると普通のアイコン掲示板に戻ってしまいます。
どこに何を記述すればいいかすらわからなくなってしまいました。。。
どなたか協力して頂ける方はいませんか?
↓一応辞書の選択項目は出来たtxt↓
http://nyanko.s6.xrea.com/x/henkan.txt
0917追記02/02/01 13:53ID:wZ8UcjT+
# 辞書を定義
$dicfile = ('***.dic','+++.dic');
$dicname = ('***辞書','+++辞書');
の部分を
# 辞書を定義
@dicfile = ('***.dic','+++.dic');
@dicname = ('***辞書','+++辞書');
に直したテキストをアップし忘れてますが直してあります。(今は外なのでアップできません)
0918ハゲ02/02/01 13:55ID:NjUzO3xG
今peakの掲示板を改造してるんですけど(改造といってもHTMLしかわからないので配置等を変える程度)
普通に<hr size="1">とか入れてもエラーになりますよね?
それで<hr size=\~1\">にすると正常に起動するんですけど、<hr size=1>といれても起動するんです。
本当は見やすいし軽い<hr size=1>がいいんですけど<hr size=1>は勝手に自分で試したら出来たんで
何かブラウザのバージョンによっては起動しなかったりしなそうで…
問題ありませんか?
0919ハゲ02/02/01 13:58ID:NjUzO3xG
peak→×
perl→○
0920名無しさん@お腹いっぱい。02/02/01 14:05ID:tDsyJk1f
>918
ほとんど問題ありません。
0921ハゲ02/02/01 14:12ID:NjUzO3xG
>>920
おぉそうですか!
はやいレスありがとうございました!
092291402/02/01 14:19ID:???
>915さん、ありがとうございます!

あれから何とか目的の表示は出来るようになりまして
下記はどう見てもアタマ悪そうなソース恥ずかしいですが
ここはこうしろ!というツッコミありましたら皆様お願いします。

$flag = 0;
open(IN,"$logfile") || &error("Open Error : $logfile");
$i=0;
while (<IN>) {
$i++;
local($no,$part,$sub,$hp,$banner,$name,$email,$pw,$msg,$dt,$ts,$rec) = split(/<>/);

if ($rec == 1) {
$flag = 1;

if ($part == 0) {
print "<table width=\"100%\"><tr><th bgcolor=\"#CCFFCC\">\n";
print "<div align=\"left\">◆ $parts[0]</div</th></tr></table><br>\n";  # カテゴリを表示
&list;   # バナー・サイト名・コメントを表示
}

中略

if ($part ==5) {
print "<table width=\"100%\"><tr><th bgcolor=\"#CCFFCC\">\n";
print "<div align=\"left\">◆ $parts[5]</div</th></tr></table><br>\n";
&list;
}}}

close(IN);

if (!$flag) {
print "<hr size=2 color=\"$obi_color\">\n";
print "<div align=\center\">*** 現在ブックマークされている登録はありません ***</div>\n";
}

0923ハゲ02/02/01 15:55ID:NjUzO3xG
\"を全て置換して消したら起動しなくなってしまった…困った…
0924NANASEA02/02/01 23:05ID:+P0IlRhw
ttp://www2j.biglobe.ne.jp/~tatuta/cgi-bin/gbs/index.htm
この掲示板を
管理人以外スレをたてられない。
名無しじゃあ書き込めない。
ように改造したいのですが よろしくお願いしますm(_)m
0925第三中継可能 cc.sookmyung.ac.kr02/02/02 00:19ID:???
cc.sookmyung.ac.kr (pri=10)
< 220-InterScan Version 3.6-Build_1166 $Date: 04/24/2001 22:13:0052$: Ready
< 220 cc.sookmyung.ac.kr ESMTP Sendmail 8.9.3/8.9.3;
> HELO rlytest.nanet.co.jp
< 250 cc.sookmyung.ac.kr Hello localhost [127.0.0.1], pleased to meet you
> MAIL FROM:< http://www.nanet.co.jp/rlytest/[email protected] >
< 250 < http://www.nanet.co.jp/rlytest/[email protected] >... Sender ok
> RCPT TO:<[email protected]>
< 250 <[email protected]>... Recipient ok
> QUIT
< 221 cc.sookmyung.ac.kr closing connection
問題あり:不正な中継を受け付けます。
(203.252.201.4)
ORDB database...登録されています。注意注意注意!
maps realtime blackhole list...登録されていません。
0926 1000!!!!!取り合戦開始!02/02/02 02:55ID:???
0927名無しさん@お腹いっぱい。02/02/02 03:18ID:???
>926
まだはええよ、この板では。
0928NANASEA02/02/02 23:58ID:dhP/lfU5
>924を心からお願いいたしますage m(_)m
0929名無しさん@お腹いっぱい。02/02/03 00:07ID:+IXT+7Wc
>928
新規投稿フォームを撤去するだけで大抵の奴にはスレッドが建てられない。
さらに、書き込み用CGIからも新スレッドを立てるルーチンを削除してしまえば効果満点。
管理者だけが使えるディレクトリかCGIを用意して、改めてそこに新規投稿用のフォームを設置する。
以上。
なお、名無しを弾くのは、
if ($name eq "") { $msg = "名前を記入して下さい"; }
といったルーチンを加えればよい。
0930NANASEA02/02/03 00:31ID:d0DiAdgy
>929様
まことにありがとうございますm(_)m
すいませんがルーチンはどこに付け加えたら良いのでしょうか?

http://isweb4.infoseek.co.jp/play/yakisoba/gbs.txt
0931名無しさん@お腹いっぱい。02/02/03 00:37ID:+IXT+7Wc
>930  
655行目からの
if ($FORM{'name'} eq '') {
$FORM{'name'} = $name_noname;
}
を
if ($FORM{'name'} eq '') {
&quit ("名前を記入して");
}
に書き換える。
0932NANASEA02/02/03 03:02ID:d0DiAdgy
>929&931様
本当にありがとうございましたm(_)m
無事設置できました ありがとうございます!
0933one02/02/03 16:47ID:v7n/KP97
はじめてです。

掲示板のレス用のページにとんで、書き込みをした後、もとのページに戻ることができません。もう一回アクセスし直さないと見れないんです。
どこが間違ってるかわからないのでソースもここに表示できなくて困ってます。

0934名無しさん@お腹いっぱい。02/02/03 17:06ID:???
>なお、質問するときは
>1)そのスクリプトのある場所(URL必須、拡張子".txt"でアップすればなお良し)
>2)どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
>を必ず明記しよう。
0935名無しさん@お腹いっぱい。02/02/03 17:11ID:???
17氏スクリプトで、秒まで表示させる場合
どうすればいいの?
0936one02/02/03 17:11ID:v7n/KP97
http://www2.csc.ne.jp/~one20165/

ここのレスする時のページからもとのページに戻れるようにしたいです。
できれば書き込み終了後、自動的に戻ってほしいと思ってます。

よろしくお願いします。
0937名無しさん@お腹いっぱい。02/02/03 17:15ID:???
>>936
どれだよ。お前の言いたいことサッパリわかんねーよ。
0938名無しさん@お腹いっぱい。02/02/03 17:15ID:???
>>936
書き込めっての?(w

そうじゃなくて使ってるCGIファイルをコピーして
さらに拡張子を「txt」に変えて、別の場所にアップロードしろってこと
0939名無しさん@お腹いっぱい。02/02/03 17:20ID:???
掲示板の事言ってるの?あそこの掲示板レンタル掲示板だろ。
どうやってスクリプト改造するのさ。
0940終了02/02/03 17:24ID:???
【結論】レンタル先に文句言え
0941one02/02/03 17:32ID:v7n/KP97
そうじゃなくて使ってるCGIファイルをコピーして
さらに拡張子を「txt」に変えて、別の場所にアップロードしろってこと

できません。
レンタル掲示板をカスタマイズできるんだけど、それをしたらおかしくなったんです。
スクリプトをさわれるからそのせいでおかしくなったのかと思った。
一日たってもなおらないので自分のせいかとおもって、でもわからんからきいてみた。

かきこめってゆってるわけじゃないけど掲示板のレスしてもらったらいいたいこと分かると思います。
0942名無しさん@お腹いっぱい。02/02/03 17:50ID:???
http://bbs.otd.co.jp/_index/under_index.html
ここのどれをレンタルしたとか、どう改造したとか
提供すべき情報が多いと思いますが
0943名無しさん@お腹いっぱい。02/02/03 17:51ID:???
>>941
板違い。

=====レンタル掲示板ネタ終了=====
0944名無しさん@お腹いっぱい。02/02/03 17:53ID:???
お前日本人だろ?
ちゃんと言いたい事が分かるように説明しろよ。
なんでわざわざあの掲示板にレスせんないかんのじゃ。
あれお前の掲示板なの?
0945名無しさん@お腹いっぱい。02/02/03 18:13ID:ZN7iyAzm
>933
通常は、書き込み処理が終わった段階で
print "Location: URI";
という処理を入れて戻します。
0946one02/02/03 18:19ID:v7n/KP97
>945
ありがとうございました!!
やってみます。
0947one02/02/03 18:23ID:v7n/KP97
>944
お前も日本人だろ?
提供する情報ってそれしかいうことないわ。
分かってくれてる人もいるやんけ。
うちの掲示板じゃなかったらなんでこんなこときくねん。
良く考えろや。

ここはちがうとこで紹介されてきたんじゃ。
0948名無しさん@お腹いっぱい。02/02/03 18:31ID:???
>>945のはPerlソースでのこと
某レンタル掲示板はそこまでいじれない
Perlソースでいじれるのはメッセージ表示部のみ
よって見当違い

ログ保存してから、削除して作り直せばいい
初心者が無理に改造するからだろ 自業自得
0949名無しさん@お腹いっぱい。02/02/03 18:45ID:ZN7iyAzm
>948
うん。そうだね。
Perlのソースを直接いじれないと難しいですね。
ヘッダーの部分に細工させてもらえるんだったら、

<META HTTP-EQUIV="Refresh" CONTENT="10;URL=http://xxx.com/">

を追加して、ページに戻す方法もあるけどね。
ま、いずれにしても、ソースいじれないと難しいかもしれません。
0950one02/02/03 18:51ID:v7n/KP97
>948
でもついさっきまではブラウザの戻るのボタンおしても戻れなかったのが戻れるようになったで。
初心者やけどなんでもやってみないと分からないと思いますが。
なにが分からんかも分かってない時点で本読んだりサイト調べても結局理解できないと思うよ。

あなたは親切なので、言葉遣いが悪すぎるのか、ほんとに嫌味なやつなのかわかりません。
とりあえずありがとう。
0951名無しさん@お腹いっぱい。02/02/03 19:09ID:???
新手の荒らし依頼かと思ったよ。
095293502/02/03 19:20ID:POOEDT6u
>>935
誰かおしえてちょ〜〜〜
0953名無しさん@お腹いっぱい。02/02/03 19:24ID:???
>>952
chmod(0000,$file);
0954名無しさん@お腹いっぱい。02/02/03 19:53ID:???
厨房はなんでこう付け上がるかね
0955名無しさん@お腹いっぱい。02/02/03 19:54ID:???
>>952
17スクリプトってなに?
探し出して教えろってこと?
0956名無しさん@お腹いっぱい。02/02/03 19:54ID:???
>>950
とっとと死ね。
095793502/02/03 19:55ID:???
>>955
はい、オマエが自分で探して教えて下さい
0958名無しさん@お腹いっぱい。02/02/03 19:57ID:???
>>957
偽者ハッケン
0959名無しさん@お腹いっぱい。02/02/03 20:02ID:???
そろそろ次スレ行くか。
0960名無しさん@お腹いっぱい。02/02/03 20:57ID:???
質問なのですが、
http://www.buri.ne.jp/perl/sample2/profile.cgi

上記のプロフィールのCGIで年齢の部分がソートしても数字と漢字が混じっていて上手くいきません。
これはどう改造したら宜しいでしょう?

http://www2.famille.ne.jp/~kuwa/perl/profile.html
↑
ここの「Ver.5.35β」なのですが。。

わかる方がいましたら宜しくお願いします。。
0961名無しさん@お腹いっぱい。02/02/03 22:30ID:???
名前と日付しかマトモに動作してなくない?
ひどいスクリプトだな
0962 02/02/03 22:41ID:???
@array[sort {...} 0..$#array] なんて書き方あるの?
こう直したらどうだろ

sub listの「###ソート」
>@MEMBS = @MEMBS[sort {$MEMBS2[$a] cmp $MEMBS2[$b]} 0 .. $#MEMBS2];
>@MEMBS = @MEMBS[sort {$MEMBS2[$b] cmp $MEMBS2[$a]} 0 .. $#MEMBS2];
 ↓
@MEMBS = sort {$MEMBS2[$a] cmp $MEMBS2[$b]} @MEMBS[0 .. $#MEMBS2];
@MEMBS = sort {$MEMBS2[$b] cmp $MEMBS2[$a]} @MEMBS[0 .. $#MEMBS2];
0963one02/02/04 16:10ID:m1JMuAbq
遅レスすみません。
949>
<MATA〜ていうとこはさわれるみたいです。
まえのでできなかったのでこれでやってみます。
ほんとにありがとうございます☆
951>
荒らしか・・・。
それだったらそういう態度になるのも納得。
不馴れでごめんんさいでした。。
0964one02/02/04 16:13ID:m1JMuAbq
ごめんんさい→ごめんなさい

こんなとこ間違うなんてバカ。。。
0965質問です02/02/04 16:54ID:KZg5zWpX
<script language = "JavaScript">
<!-- Begin -------------------
var now = new Date();
var hour = now.getHours();
if(hour==0) {document.write("")}
if(hour==1) {document.write("")}
if(hour==2) {document.write("")}
if(hour==3) {document.write("")}
if(hour==4) {document.write("")}
if(hour==5) {document.write("")}
if(hour==6) {document.write("")}
if(hour==7) {document.write("")}
if(hour==8) {document.write("")}
if(hour==9) {document.write("")}
if(hour==10) {document.write("")}
if(hour==11) {document.write("")}
if(hour==12) {document.write("")}
if(hour==13) {document.write("")}
if(hour==14) {document.write("")}
if(hour==15) {document.write("")}
if(hour==16) {document.write("")}
if(hour==17) {document.write("")}
if(hour==18) {document.write("")}
if(hour==19) {document.write("")}
if(hour==20) {document.write("")}
if(hour==21) {document.write("")}
if(hour==22) {document.write("")}
if(hour==23) {document.write("")};
// -- End of JavaScript code -------------- -->
</script>

よくある時間ごとの書き換えですが、
これを3時間おきに変化させる方法はどうしたら良いでしょう?
AAA BBB CCC DDD EEE FFF GGG HHH 版と
ABC DEF GHA BCD EFG HAB CDE FGH 版をどなたかご指導下さい。。。
0966名無しさん@お腹いっぱい。02/02/04 16:59ID:???
>965
・JavaScript、VBScript等クライアントサイドの話題はWeb製作板へ
http://pc.2ch.net/hp/index.html
0967名無しさん@お腹いっぱい。02/02/04 17:02ID:???
>>963
それ以前に「質問の不備」があれば叩かれて当然
0968初心者@携帯好き02/02/04 19:40ID:8txKYoJn
KENT氏のpetit boardのiモード版、petit2iを使ってるのですが、
http://red.tomato.nu/desperado/software/
iモードでアクセスするときに、レスがあるのかないのかわからないのにそれぞれの書き込みのレスを開いてしまうので、
できればレスがある記事はレスにジャンプするボタンの横にレス件数を表示できればなぁ・・・って思ってます。
(例: [レス][2件])cgiをちょっといじれば可能だとおもうんですが、cgi初心者のため全くわかりません。
よろしくお願いします。
0969 02/02/04 20:28ID:???
>>968
整形に全角スペース使ってるんで注意

sub html_log

変更点1

# 親記事のみの配列データを作成
foreach $line (@lines) {
 local($num,$k,$date,$name,$email,...
 # 親記事を集約
 if ($k eq "") { push(@new,$line); }
 else { $res_count{$num}++; } # <-- 追加
}

変更点2

# 自動リンク
if ($autolink) { &auto_link($com); }

...
print "[<a href=\"$script?resno=$num&mode=rr&page=$page\">レス</a>]";
printf("[%d件]", $res_count{$num} || 0); # <-- 追加
0970しんがり ◆DVScXJdU 02/02/04 22:35ID:???
askaBBS を使って身内でAA掲示板を使用してるんですが
検索で半角カナを使えるようにはなりませんか?
http://www.kent-web.com/bbs/aska.html
0971初心者@携帯好き02/02/04 23:53ID:/QMQdZkL
>>969
教えていただき、とてもありがたいのですが、実際に追加してアップした所、
実際のレスの件数と親記事のページに表示される[レス][2件]などの件数が全く食い違っている事に気づきました。
あと、整形に全角スペース使っているから・・・というのがありますが、追加する部分に全角スペースが入ってないので、
私には理解できませんでした。
申し訳ないのですが、$kの意味も含めてもう少し教えてください。
0972名無しさん@お腹いっぱい。02/02/05 00:03ID:???
>>971
狂い方に規則性とかある? 少し例をあげてもらえるといいかも

この板のログは(多分)「メッセージ番号, レス番号, ...」という形式だから
アタマで「レス番号」がある(=小記事)の数をカウントして
「メッセージ番号」をキーとしたハッシュに控えておく
あとは、それを表示してるだけ
0973初心者@携帯好き02/02/05 01:17ID:aKgdzRka
>>972
ログファイルとにらめっこしてたら、ようやく規則性がわかりました。
例として挙げると、([$num][$k]とします。)
[20][]親記事�@ 10:00
[20][20]親記事�@に対する返信記事a 10:30
[20][20]親記事�@に対する返信記事b 11:00
[21][]親記事�A 11:30
[21][20]親記事�@に対する返信記事c 12:00 ←ここが問題!
[21][21]親記事�Aに対する返信記事a 12:30 
[22][]親記事�B 13:00
[23][]親記事�C 13:30
[23][20]親記事�@に対する返信記事d 14:00 ←ここが問題!

というかんじになっており、このCGIは、レスした場合、その時点での最新の親記事の[$num]が
返信記事の[$num]になってしまうという現象が起きており、上記のログをCGIで読み込むと、

[23] 13:30
親記事�C
[レス][1件] ←実際は0件


[22] 13:00
親記事�B
[レス][0件]

[21] 11:30
親記事�A
[レス][2件] ←実際は1件


[20] 10:00
親記事�@
[レス][2件] ←実際は4件

となってしまいます。いかがなものでしょうか・・・

0974名無しさん@お腹いっぱい。02/02/05 01:24ID:???
新スレ。適当に移行して下さい。

http://pc.2ch.net/test/read.cgi/php/1012839651/l50
0975名無しさん@お腹いっぱい。02/02/05 01:30ID:???
>>974 おつ〜

>>973
なるほどねw 簡単、こうすればOK

変更点1

# 親記事のみの配列データを作成
foreach $line (@lines) {
 local($num,$k,$date,$name,$email,...
 # 親記事を集約
 if ($k eq "") { push(@new,$line); }
 else { $res_count{$k}++; } # <-- 真のメッセージ番号「$k」に置換
}
0976初心者@携帯好き02/02/05 01:36ID:aKgdzRka
>>975
ありがとうございました。今回の件でほんのちょっとですが、cgiに触れられて、
すごくいい経験になりました。
0977名無しさん@お腹いっぱい。02/02/12 15:39ID:???
  ∧_∧
 ( ・∀・) ニヤニヤ
 ( 1000 )
 | | |
 (__)_)
0978埋め02/02/21 04:31ID:???
埋め
0979次スレ02/02/21 04:33ID:???
スクリプト改造工房 Part4
http://pc.2ch.net/test/read.cgi/php/1012839651/l50
0980名無しさん@お腹いっぱい。02/02/21 04:34ID:???
埋め立て。
0981名無しさん@お腹いっぱい。02/02/21 04:39ID:???
ラスト
0982名無しさん@お腹いっぱい。02/02/21 05:01ID:???
  ∧_∧
 ( ・∀・) ニヤニヤ
 ( 1000 )
 | | |
 (__)_)
レス数が950を超えています。1000を超えると書き込みができなくなります。