トップページ⇒php
1001コメント364KB

Perl コーディング初心者質問コーナー Part36

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/07/14 13:23ID:???
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

過去ログやお勧めサイトは >>2-10
0075nobodyさん04/07/18 07:57ID:???
> 1〜1000の各数字が、5・6・7・8・9の5種のうちのどれかを所持しております。

ここがよくわからん
0076nobodyさん04/07/18 08:34ID:???
まあ、放置しとけばいいさ。
0077nobodyさん04/07/18 09:59ID:???
>>75
data[1〜1000] にそれぞれ5〜9の値が入っていて、
その値に応じて新しい配列(5個)を生成したい、
ってことだと思う。
>>74のいうようにpushとifでできるやぁね
0078nobodyさん04/07/18 11:04ID:???
何で回答者が日本語の解析までやらにゃならんのだ
0079nobodyさん04/07/18 12:02ID:???
77 氏の通りだと仮定してやってみた。
効率なんて考えていないので添削キボンヌm(_ _)m

# 5,6,7,8,9 の数字が 1000 個入っている配列(リスト)
# 仮に rand を使って生成。
my @Source_array = map { ((5..9)[int rand 5]) } 1 .. 1000;

# を、それぞれ値 (5 〜 9) によって選別したい。
# でも 5 つも配列を作るのは、のちのちややこしくなるので、ここは 1 つの配列に格納して、
# それぞれを呼び出しやすくする。(リストリファレンスが 5 つ入っているハシュにする)

my %Dist_hash;
push @{$Dist_hash{$Source_array[$_]}}, $_ foreach 0 .. $#Source_array;

# 呼び出し方。
# 値が 7 の @Source_array の添え字を表示する。
my $value = 7; # 範囲は 5 から 9 の間で指定しる。
printf qq|\$Source_array[%s]\n|, join(', ', @{$Dist_hash{$value}});

# 実際に @Source_array の値を表示してみる。
printf qq|\$Source_array[%d] = %d\n|, $_, $Source_array[$_] foreach (@{$Dist_hash{$value}});
00807204/07/18 14:14ID:???
文章わかりにくかったみたいですいません。
意図してたのはまさに77氏の言うとおりです。
79さんどうも!思ってたことができました。こんなの自分で考え付けるようになりたい。
ありがとうございました。
0081nobodyさん04/07/18 22:22ID:LXS4mDIw
$aa = "aa";
@bb = qw[1 2 3];
$cc = "cc";
&hoge($aa,@bb,$cc);

sub hoge($,@,$){
my $aa = shift;
my @bb = shift;
my $cc = shift;

print "$aa \n";
print "$_\n" foreach(@bb);
print "$cc\n";
}

関数に変数と配列を渡し、関数側でそれぞれ上記のように
スカラ変数と配列を区別させて認識させたいのですが
どのようにすれば良いのでしょうか?
よろしくお願いします。
0082nobodyさん04/07/18 22:25ID:???
お約束として。

リファレンス使え。
0083nobodyさん04/07/18 22:29ID:???
>>81
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlsub.html#Pass_by_Reference
00848104/07/18 22:30ID:???
やっぱり参照使わないと実現できないのでしょうか?
もし使わずに実現できる方法があれば教えてほしいです。
0085nobodyさん04/07/18 22:34ID:???
ルートユーザしか使えないアプリをCGIから
動かしたいと考えています。perlを使ったCGIで
ルートユーザかしか使えないコマンドを
入力する方法はないでしょうか?

今、自分が作っているCGIの前に人が作った
認証を通す必要があり、ユーザは自分が指定した
一般ユーザでログインしているという形になります。

通常のコマンドであればシングルコーティションで
囲えばよいことがわかっているのですが、当たり前
ながら一般ユーザではroot専用のコマンドは
入力できません。

方法がありましたら、教えてください
0086nobodyさん04/07/18 22:51ID:???
ユーザに権限与えて sudo
0087nobodyさん04/07/18 22:55ID:???
>84
配列が一番後ろなら出来る。
が、リファレンスを使った方が問題が起こりにくい。
リファレンスを使わずにやるなら、複雑な方法になるか、問題の起こりやすい方法になるかどっちかだ。
0088黒死犬 ◆EgxBlf8nvc 04/07/18 23:00ID:???
>>81
Perl5.8以上なら

sub hogging($\[@]$) {

my $top = shift;
my @middle = @{+shift};
my $bottom = shift;

print("top = [$top]");
print("middle = [@{[join(',',@middle)]}]");
print("bottom = [$bottom]");

}

my @unko = (A..Z);
test("Test Start", @unko, "Test End");

これで出来ますよ
0089黒死犬 ◆EgxBlf8nvc 04/07/18 23:02ID:???
訂正
s/test/hogging/;
0090nobodyさん04/07/18 23:51ID:???
>>88
プロトタイプ宣言は 5.002 から利用可能だが。

sub test($\@$) {
  my $top = shift;
  my @middle = @{+shift};
  my $bottom = shift;
  ...
0091nobodyさん04/07/19 00:02ID:???
それってひょっとして
hoge($aa,@bb,$cc,@dd) みたく配列が二つ以上ある場合でもできたりします?
0092nobodyさん04/07/19 00:08ID:???
>>91
確認ぐらい人に聞かなくてもできるでしょ?
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlsub.html#Prototypes
00938404/07/19 04:16ID:???
>>87-90
やはり参照を使うのが無難のようですね。
しかし、勉強になりました。
どうもありがとうございました。
0094黒死犬 ◆EgxBlf8nvc 04/07/19 13:14ID:???
>>90
そうなんですか
自分が情報を得ているところでは、[Perl5.8の新機能]となっていた為、誤解をしてしまった様です
ご指摘有難うございます
0095nobodyさん04/07/19 16:08ID:???
ふむ。
0096nobodyさん04/07/19 21:58ID:54seOava
log.csv ってファイルに、改行したデータを書き込みたいんですが、
上手く書き込めません。
同じ行に表示されるようにしたいんですが、次の行に改行されてしまいます。
上手く、一つのセルに改行したデータを入れたいんですが、どうすればよいでしょうか?
コードは、下のようなのを使っているのですが・・・・
根本的に間違ってたりするんでしょうか?


$aaa = '123';
$bbb = '456';
@ccc = '789',
'0123';

open(LOGFILE,">>log.csv");

$LOG = "$aaa,$bbb,@ccc";

print LOGFILE $LOG;
close LOGFILE;

0097nobodyさん04/07/19 22:13ID:???
>>96
Excelで表示する時の話?セルっつーのが何のことやら。
特定のアプリでの表示の話なら、
逆にそのアプリで改行して保存したものを覗いてみれば分かると思われ。
0098nobodyさん04/07/19 22:27ID:54seOava
>>97
Excelで開いた場合です。説明不足ですみません。
メモ帳で開くと、改行のコードの問題みたいです。

改行コードの変換は

$ccc =~ s/\n/\r/g;

で良いんでしょうか?
0099nobodyさん04/07/19 22:32ID:OSilZxWF
>>96
perlコーディングには関係ないが

CSV形式では普通セル内に改行やカンマがあるときは「"」で囲うよ。
で「"」内では「"」を「""」で表現する

それからエクセルではセル内の改行は\r\nではなくて\n
0100nobodyさん04/07/19 23:24ID:54seOava
>>99
エクセル内の改行は\nなんでしょうか?
とすると、

$ccc =~ s/?/\n/g;

「?」の部分には何を入れればよいのでしょう?

上記のように、s/\n/\r/g; として書き込んだファイルを
メモ帳で開くと、見た目はUNIX改行コードっぽくなっているのですが、
エクセルで開くと、セル内改行が出来ていないようです・・・
0101nobodyさん04/07/19 23:56ID:???
>>100

1 │3 │4
2 │  │
─┼─┼─
5 │6 │7
  │  │8

   ↓

"1\n2",3,4\r\n5,6,"7\n8"\r\n

あとメモ帳じゃなくてバイナリエディタ使ってみな。
0102nobodyさん04/07/19 23:59ID:???
>>100
http://www.din.or.jp/~ohzaki/perl.htm#CRLF_Unify
0103nobodyさん04/07/20 13:48ID:???
質問させてください。
ロケットマウスというソフトの設定ファイルをperlで生成して出力させようと
思ったのですが
ロケットマウスでは記号(){},+^~%`と半角スペースは特殊文字として
認識されてしまうのでメタキャラとして設定ファイルとして書き込む場合には
「+あかさたな+」という文字列では
「{+}あかさたな{+}」と置換してからファイルに書き込むようにしなければならないので
my $Name_T = '+あかさたな+';
my $Name_T = ~s/+/{+}/g;
のように置換できたのですが
「+-あかさたな-+」のようなものを上に書いたような形で一発で置換する
ことはできないのでしょうか?
最悪一つ一つ置換していけばOKなのですができればスマートに
できたら幸せになれます。
どうぞよろしくお願いします。
0104nobodyさん04/07/20 14:08ID:???
>>103
s/([\x20(){},+^~%`])/{$1}/g;

http://www5a.biglobe.ne.jp/~n_rieko/perl/8.htm
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlre.html

WebProg と関係無い Perl の話はム板のスレへ。
http://pc5.2ch.net/test/read.cgi/tech/1085564875/
010510304/07/20 14:24ID:???
解答、説明リンク、誘導ありがとうございます。
勉強になります。
次からはム板でさせていただきます。
0106nobodyさん04/07/22 07:13ID:???
open(DATA, "index.html");
@data=<DATA>;
close(DATA);
foreach $data( @data ) {

とやって、同じディレクトリのindex.htmlを読み出して、携帯電話対応に書き換えるスクリプトを作ってたんですが、

ヘッダーをつける
<body>という文字列が見つかるまで、$data = '';に書き換える
次の$dataから書き出す
</body>が見つかったらそれ以降を$data = '';に書き換える
フッターをつける

とやってたんですが、なんか回りくどい気もします。

ヘッダ、body要素の中身、フッタを簡単に分ける方法ってないですかね。
010710604/07/22 07:43ID:???
よく考えたら回りくどくはないですね。

@dataから一行ずつ引っ張り出した、<body>〜</body>の$dataを@bodyに格納したいんですが、
$dataを書き直して、@bodyに入れていく、の方法がわかりません。
$dataを書き直して吐き出す、までは出来てるんですけど。

#@bodyをバイト数で割って、「次のページ」というのをやりたいんです。
010810604/07/22 08:06ID:???
push(@body,$data);
で出来ました……。板汚しごめんなさい。
0109nobodyさん04/07/22 09:18ID:0RDyhyxo
open(DATA, "index.html");
$data .= $_ while read(DATA,$_,1024);
close(DATA);

if ($data =~ m{<\s*body.*?/body\s*>}i) {
$head = $`;
$body = $&;
$foot = $';
}
0110nobodyさん04/07/22 13:24ID:???
>>106-108
#!/usr/local/bin/perl
use strict;
my @body;
m|<body>| .. m|</body>| and push @body, $_ while <DATA>;
shift @body; # <body> を捨てる
pop @body; # </body> を捨てる
print @body;
__DATA__
<html>
<head><title>test</title></head>
<body>
<h1>test</h1>
<p>foo</p>
<p>bar</p>
</body>
</html>
0111nobodyさん04/07/23 00:29ID:TCCtsz0d
質問です。
指定したURLのファイルの更新時間を取得したいのですが
どうやって取得すればいいのでしょうか?
0112nobodyさん04/07/23 00:37ID:???
>>111
Last-Modified HTTP/1.1 RFC2616
っていう答えでいいのかしら?
011311104/07/23 00:59ID:TCCtsz0d
>>112
ぐぐってHTTPの仕様と言う事はわかったのですがそれ以上の事は解りませんでした。
それをどうすれば取得できるのでしょうか?

0114nobodyさん04/07/23 01:09ID:???
HEADリクエスト
011511104/07/23 01:31ID:TCCtsz0d
ファイルの内容は取得出来ましたがヘッダの内容が取得出来ませぬ・・・。

require LWP::UserAgent;
$ua = LWP::UserAgent->new;

$request = HTTP::Request->new('GET', 'http://google.co.jp/');

$response = $ua->request($request); # or
$response = $ua->request($request, '/tmp/sss'); # or
$response = $ua->request($request, \&callback, 4096);

sub callback { my($data, $response, $protocol) = @_;
print "$data";
}
0116nobodyさん04/07/23 01:34ID:???
>>115
GETじゃなくてHEAD
HTTPの仕組みくらい調べましょう
011711104/07/23 01:39ID:TCCtsz0d
>>116
HEADだと何も帰って来ないんです。
からっぽです。
0118nobodyさん04/07/23 01:41ID:???
>>117
http://www.studyinghttp.net/
http://member.nifty.ne.jp/hippo2000/perltips/LWP.html
011911104/07/23 01:43ID:TCCtsz0d
>>118
両方とも紫色です・・・。
012011104/07/23 02:04ID:TCCtsz0d
なんと出来ました。

require LWP::UserAgent;

$ua = LWP::UserAgent->new;

$request = HTTP::Request->new('HEAD', 'http://akky.cjb.net');

$response = $ua->request($request);
($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime($response->headers->last_modified);
$year += 1900;
++$mon;
print "更新時:$year年$mon月$mday日 $hour時$min分$sec秒\n";
012111104/07/23 02:06ID:???
訂正:なんと"か"出来ました。
0122nobodyさん04/07/23 11:00ID:???
質問です。自分でGIF画像のカウンタを作っています。

ソース:
ttp://tool-ya.ddo.jp/2ch/trash-box/file/20040723105619092.zip

gifcatで連結して出力する場合、ブラウザで確認すると、桁が左側から順に表示されてしまいます。
連結されて一つの画像になっているにもかかわらず、桁ごとに表示されるという現象が起こっています。
一桁ずつ順に表示するのではなく、例えば5ケタなら5ケタ分を一気に表示させたいのですが、
どのように記述すればいいのでしょうか。
0123nobodyさん04/07/23 11:45ID:???
>>122
GIFアニメだから
0124nobodyさん04/07/23 11:45ID:???
>>122
猫は GIF アニメーションを使って擬似的に連結しているからねぇ。
0125nobodyさん04/07/23 14:01ID:???
gifcatやstrcatの cat をマジでネコだと思ってるヤツって、どれくらいいるんだろなw
0126nobodyさん04/07/23 14:06ID:???
>>125
釣りの勉強が足りてませんよ
0127nobodyさん04/07/23 14:18ID:???
catコマンドはもともと猫であってるよ。
でもそれじゃあ格好がつかない というわけで
連結(conCATenate)だと由来を後付した。
0128nobodyさん04/07/23 14:35ID:???
125立つ瀬ねえなw
0129nobodyさん04/07/23 14:48ID:???
かわいそうな>>125
0130nobodyさん04/07/23 15:22ID:???
>>125
(・∀・)ニラニラ
0131nobodyさん04/07/23 15:57ID:???
             . ィ   >>125
.._ .......、._    _ /:/l!  そんなエサでぬこさまが(ry
 :~""''.>゙' "~ ,、、''‐'、|         _      
゙、'、::::::ノ:::::::_,.-=.  _〜:、         /_.}'':,
 ``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
 ,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:'  ノ゙ノブ     
"   .!-'",/  `'-‐'') /\ `/ でノ-〈
 .-''~ >'゙::    ‐'"゙./  ヽ.,'   ~ /
   //:::::       ',    /    ,:'゙
0132nobodyさん04/07/23 16:31ID:???
ワロタ
>>125再降臨キボンヌ
0133nobodyさん04/07/23 17:17ID:???
質問いいでしょうか。BBSにワード検索機能を付けたのですが、

foreach $temp (@line) {                      # @lineはログ
 $temp =~ s/\s*$//;
 @data = split (/\t/, $temp);                   # タブ区切りなのでタブで分割
 if (index ($data[0] . $data[1] . $data[2], $words) > -1) { # 名前,メール,本文 $wordはフォームから受け取った検索ワード
  push (@new, $temp);
 }
}

このようにして、@newの中身をforeachで書き出せば、指定語句を含むものだけは書き出せました。
これを、検索ワードをスペース区切りで複数指定可能にしてAND検索をできるようにしたいと思っています。

$word =~ s/\x81\x40/\t/g;                    # スペースで区切って入力されたフォームの検索ワードをタブ区切りにする
@words = split (/\t/, $word);                   # 検索ワードをタブで区切って配列に入れる

この2行を追加して検索ワードを複数取得したのはいいのですが、indexの第二引数の部分で@wordsの中身を全て含む場合の記述方法が思い浮かびません。
どのような記述方法があるのでしょうか。
013413304/07/23 17:43ID:???
$word =~ s/\x81\x40/\t/g;
@words = split (/\t/, $word);
foreach $temp (@line) {
 $temp =~ s/\s*$//;
 @data = split (/\t/, $temp);
 foreach (0 .. $#words) {
  if (index ($data[1] . $data[2] . $data[6], $words[$_]) > -1) {
   push (@new, $temp);
  }
 }
}

このように記述してしまうと、検索ワードを複数指定した場合、
「検索ワードを含む記事の数 * 検索ワード数」分の記事が出てしまうのです。
 Ex1.
 「オレオレ!ばぁちゃん、車ぶつけて50万必要なんだ」という記事がある場合、
 検索ワードを「オレオレ ばぁちゃん 車ぶつけて 50万必要」などとすると、同じ記事が4つ@newの中に入ってしまいます。
 Ex2.
 「オレオレ!ばぁちゃん、車ぶつけて50万必要なんだ」という記事と、
 「オレオレ!ばぁちゃん、車ぶつけて50万必要なんです」という記事がある場合、
 検索ワードを「オレオレ ばぁちゃん 車ぶつけて 50万必要」などとすると、
 「〜必要なんだ」という記事が4つ、「〜必要なんです」という記事が4つの計8つが@newの中に入ってしまいます。
0135nobodyさん04/07/23 17:50ID:???
じゃあ、どうしたらいいと思う?
013613304/07/23 18:00ID:???
>>134の
>  if (index ($data[1] . $data[2] . $data[6], $words[$_]) > -1) {
この部分は
  if (index ($data[0] . $data[1] . $data[2], $words[$_]) > -1) {
の間違いです。失礼しました。
0137nobodyさん04/07/23 18:18ID:???
>>133-134
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlsyn.html#Loop_Control
0138nobodyさん04/07/23 18:20ID:???
>>133
そこまで書けるんならそんな難しい事じゃないと思うぞ。
foreachの中でマッチするたんびにpushしてるからそうなるんであって、
flag設定してflagたった時だけpushするとか、
grepで一個でもtrue返したらpushするとか。
方法はいろいろあると思うけど、もうちょっと自分で考えてみれば?
0139nobodyさん04/07/23 18:43ID:???
>>138
無駄フラグ作ったり、grepで全検査するよか
 LINE: foreach $temp (@line) {
   ・・・
   foreach (0 .. $#words) {
     next LINE if index($data[0] . $data[1] . $data[2], $words[$_]) == -1;
   }
   push (@new, $temp);
 }
のがいいのでは?
>>137はそういうことではないかと。
0140nobodyさん04/07/23 18:52ID:???
まあ、だからそういうふうに、
いろいろ方法はある訳で、
ちょっとは自分で考えたら?
と言いたいわけですわ
0141nobodyさん04/07/23 19:22ID:???
>>140
漏れは元質問者じゃねーが、壷に嵌ったときはさらさらコードを書けるが、ドツボに嵌った時は何をやっても書けない。。。
そんな時つい2ちゃんに書きたくなるんだよ。
0142nobodyさん04/07/23 19:28ID:???
しかし、一歩も踏み出さずに投げられても、
それこそ幾通りも方法はあるし、それじゃ
丸投げと同じじゃんよ。
少しは自分で考えてやってみろって、
それでうまく行かないってんならアドバイスのしようもあるけど、
0143nobodyさん04/07/23 19:46ID:???
>>125はまだ来ないの?
0144nobodyさん04/07/23 19:52ID:???
むしろ>>126に来てほしい
014512604/07/23 20:14ID:???
呼んだ?
0146nobodyさん04/07/24 03:47ID:???
呼んでないよ
0147nobodyさん04/07/24 07:58ID:???
>>146
本人必死だな(pgr
0148nobodyさん04/07/24 08:46ID:???
あははは!
おーい、そろそろ次の質問をどうぞー。
みんな暇してるゾ。
0149nobodyさん04/07/24 10:01ID:???
printf("%s",substr(<<EOT,0,-1).substr(<<EOU,0,-1).substr(<<EOV,0,-1));
\x8e\x9f\x82\xcc
EOT
\x8e\xbf\x96\xe2
EOU
\x82\xc7\x82\xa4\x82\xbc
EOV
015013304/07/24 17:26ID:???
色々なレスありがとうございました。
もう少し色々実験してみます。
0151nobodyさん04/07/25 04:48ID:???
@fooに\nで区切られた文字列があって、
5000文字に一番近い\nごとに区切りたい(4951文字目のあとに\nが来れば、4951文字目まで、とそれから5000文字に一番近い\nまで、という感じです)のですが、
substrを使ったら\nの個数がでてきたり、と全くわけがわからなくなってしまいました。
ご教授願えませんでしょうか。
0152nobodyさん04/07/25 06:27ID:RBsrNYZO
>>151
わけがわからないのはお前の質問だ。落ち着いてわかるように書け。

とりあえず突っ込みどころとしては

配列@fooに文字列が入ってるってどういうことよ?

5000文字に一番近い\nっていうが、4999文字目と5001文字目に\nが
あったらどっちが一番近いのか?

一番近いの\nごとというが、一番近いのは1つじゃないのか?

\nがなかったらどうするよ?
0153nobodyさん04/07/25 06:47ID:???
|←   5000文字   →|
@@@@@@@\n
@@@\n@@@@\n
@@@@@@\n
@@@@@@@@@\n

こんな感じに幅を合わせたいんじゃない?
5000文字目から後ろに\nを探して最初に見つかったところで──って感じかなあ。
正規表現は{,5000}みたいに大きな数字は扱えなかったような気がするので、
ループが入るとは思う。
0154nobodyさん04/07/25 07:00ID:???
>152-153
>153さんのいうような感じで、5000以下のパケットのようなものを作りたいんです。
具体的に言うと、
ページを携帯電話対応に書き換えるスクリプトを作ってるんですが、
ヘッダをとって、body部分を6KB以下に分けたいんです。
ただ、改行で切らないと、タグの途中で切れたりしちゃうので、それを避けるために一番近い(以前に、です)\nを探す、というのも必要だったんです。
0155nobodyさん04/07/25 08:18ID:???
>>151
じゃあヒント。

ループでひとつ毎にサイズ計測。
欲しいサイズまで確認できたらループ脱出。
0156nobodyさん04/07/25 09:21ID:???
>>155
foreachですかね。
0157nobodyさん04/07/25 09:25ID:???
(´-`).。oO(一定サイズで切るとは変わったアプローチだな・・・)
0158nobodyさん04/07/25 10:03ID:???
タグが<a
href="hoge">
とか二行に分かれてたらどうすんだよ。
0159nobodyさん04/07/25 10:12ID:???
>>158
あ、大丈夫です。自分のサイト用ですので。
0160nobodyさん04/07/25 11:44ID:???
>>159
じゃあ、携帯用改ページタグでも埋め込んどけば?
0161nobodyさん04/07/25 16:36ID:???
前の話題も終わってないのに申し訳ないですが、質問させてください。

二つのCGIがあり、片方はフォームからPOSTで。
もう片方は<a href= でリンクで飛ばしています。
これらを別のCGIで吐き出されるページで使いたいのですが、
片方ずつならちゃんと動作するのに、両方を同時に設置するとどちらもエラーになります。
GETとPOSTは共存できないのですか?
0162nobodyさん04/07/25 17:12ID:???
ンなアホな
0163nobodyさん04/07/25 17:27ID:???
>>161
タイトルと >>1 を読んでくださいねー
0164nobodyさん04/07/25 17:36ID:???
>>161
んだ。イメージが全然浮かばない。
クライアントからの1リクエストにGETとPOSTを同時に含めることはできない。
URLにGETもどきのパラメータを仕込んでPOSTすることは可能。
・・・って、くらいしか答えられん。
0165nobodyさん04/07/25 20:19ID:???
>>151

substr($x, 0, 1+rindex($x, "\n", 4999))

よくわからんが結局こういうことがやりたいのだろうか?
5000文字以内に改行がないときは空文字列になるけど、
いやなら適当に直してね。
0166nobodyさん04/07/25 22:29ID:???
Perlで画像貼り付け掲示板を製作中なんですが、
引っ張ってくる画像が閲覧可能であるか、不可であるのかは判別可能でしょうか?
思考錯誤してますがどうにも苦戦中です。
何卒ご指導お願いします
0167nobodyさん04/07/25 22:33ID:8FggQcGj
チャット参加者一覧を作りたいのですが
http://〜/member.dat のようなファイルをHTMLで読見込むにはどうしたらよいでしょう?
勿論Perlでも構いません
教えてください
0168 ◆jHejx.Ji8k 04/07/25 23:01ID:???
ActivePerlとApacheをインストールしてApacheを起動させました。
それで、CGIを実行出来るかアドレスを打ったのですが、

ファイルのダウンロード

ファイルによっては、コンピューターに問題を起こす可能性があります。
以下のファイル情報に関して疑わしい点がある場合や、発信元が完全に信用で
きない場合は、このファイルを開いたり保存したりしないでください。

ファイルを開くか、ファイルをコンピューターに保存するか選択してください。

と、でてしまい開くを押しても何も起こりません。
どうすればCGIを実行出来るんでしょうか?
0169nobodyさん04/07/25 23:16ID:???
>>166-168
3 匹合わせて、、あん・ぽん・たん!
スレッドタイトルと、 >>1 を読んでくださいね。
0170 ◆jHejx.Ji8k 04/07/25 23:52ID:???
>>169
すません、わかりました。
ありがとうございました。
0171nobodyさん04/07/26 00:33ID:???
>165
それです。完璧です。有難う御座いました。
0172nobodyさん04/07/26 01:11ID:???
openでエクセルのファイルを開いて@dataに入れたんですが、
呼び出すと、文字化けしてます。content-typeが問題な気もするんですが、どうしたらいいんでしょうか。
017317204/07/26 01:20ID:???
txtでタブ区切りで作って、拡張子を変えたら使えました。謎です。
0174nobodyさん04/07/26 05:28ID:???
アホか・・・
■ このスレッドは過去ログ倉庫に格納されています