トップページ⇒php
991コメント318KB

Perlのこと何でも聞いてきてよ

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。02/02/04 00:32ID:???
       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       | 役に立つとは限らないけどね☆
   ∧ ∧ |/\_________
   (,,゚Д゚)____.
   (つ/~ ※ ※ \
   /※ ※ ※ ※ \
   ~~~~~~~~~~~~~~~~~~~
0511nobodyさん04/11/24 23:32:15ID:???
>>510
う〜んと、Perlで文字列をUTF-8エンコードにしてAmazonアソシエイト(?)のキーワード検索に対応したいのです。
0512nobodyさん04/11/24 23:34:07ID:???
sageミス。。
0513nobodyさん04/11/25 03:31:32ID:???
>>511
そしたら
PerlでUTF-8からURLエンコードしたいってことでOK?

それなら
$str =~ s/ /+/g;
$str =~ s/([^A-Za-z0-9+])/'%'.unpack("H2",$1)/ego;
でいける
0514nobodyさん04/11/25 03:55:36ID:???
if ($x=3){
みたいに条件を代入文にするときの使い道ってたとえばどんなときですか?
書き間違えてちゃんと動作しないの(しかもエラーもでない)、非常にうざいんですけど。
0515nobodyさん04/11/25 04:35:51ID:???
if ($hoge = param('name')) { $hoge = escapeHTML($hoge) }
0516nobodyさん04/11/25 09:08:15ID:???
if (param('name')) $hoge = escapeHTML(param('name'));
else $hoge = "";
0517nobodyさん04/11/25 09:17:42ID:???
paramを2回呼び出すの無駄
051851104/11/25 10:11:27ID:???
>>513
ありがとう!
0519nobodyさん04/11/25 18:53:19ID:???
Can't find string terminator "END" anywhere before EOF at c:\APACHE~1\APACHE\HTDOCS\TENDAYS\3-5.CGI line 19.

19行目周辺をしらべまくってるんだけどこがまちがってるかわかりません。
open(FILE, "+<./count.dat") or die("エラーファイルがひらけません");

eval{ flock(FILE,2);};

$count = <FILE>;
seek(FILE,0,0);
print FILE ++$count;
close(FILE);

print <<END;
Content-type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head><title>アクセスカウンター</title></head>
<body>
<p>あなたは・・・$count番目の訪問者です</p>
</body>
</html>
END
0520nobodyさん04/11/25 19:53:29ID:???
>>519
最後のENDの後に改行すれ
0521nobodyさん04/11/25 19:58:49ID:bc9/VIUx
ウホッ
失礼します。
ド素人な質問なんですが、例えば登録制サイトがあって、
登録者の個人情報(氏名、住所、電話番号etc..)を登録する場合、
通常の登録制有料サイト等は、データをDBに収めると思うのですが、
それ以外の方法としてはどんな方法がありますか?
私はハッシュ配列(ファイル)にぶち込むと勝手に思っているのですが・・・。
0522nobodyさん04/11/25 22:00:44ID:???
>>521
DBD::CSVとか
個別にファイルをディレクトリ以下にユーザIDごとに作成するとかもある
0523nobodyさん04/11/25 23:42:41ID:bc9/VIUx
>>522
レスありがとうございます。
>個別にファイルをディレクトリ以下にユーザIDごとに作成するとかもある
ハッシュ配列だと例えば、

name 山田太郎
addr 東京都**区***
phone 03-****-****
age 21
sex male

という風にユーザごとに作成すれば可能だと思いますが、
ハッシュ配列でユーザごとにファイルを作成していくのと、
CSVファイルで作成するのはどちらが良いのでしょうか・・・?
0524nobodyさん04/11/26 11:48:52ID:???
>>523
5個しか項目ないならDBD::CSVだろうね
CSVならExcelでも開けるし
管理が楽。
(5項目でも何人規模かで変わるけど)

ユーザIDとか使っていろいろするなら
ユーザIDとパスワードだけはCSVで管理して
細かい情報はユーザごとのファイルなりディレクトリなり作った方が後々楽だし
CSVは何よりデータが増えると比例して遅くなっていくけど
動的にファイルパスを作って直接アクセスするからある程度の速度が維持できると思う

それよりわざわざageなくてもいいよ
0525nobodyさん04/11/26 12:08:26ID:???
>>524
度々のレス多謝です。

>5個しか項目ないならDBD::CSVだろうね
実際には10項目位ありますorz
規模は10〜30人程です。
その場合はユーザごとにファイル作るようにした方が良いです蟹?

>ユーザIDとパスワードだけはCSVで管理して
ユーザID、パスワードも欲しいいので、その2項目は一つのCSVファイルに入れた方が
良いのですか。フムとても勉強になります。
0526nobodyさん04/11/27 00:14:10ID:bz1yMaUi
某有料CGIプログラム配布サイトに金振り込んで連絡したら音信不通です。どうしましょう?
0527nobodyさん04/11/27 00:22:58ID:???
>>525
最大50人としても50行しかファイルないし
DBD::CSVでOK。

レスポンス気になるならBenchmark.pmとかで計ってみればいいと思うよ

DBD::CSVの場合は1ファイルの大量入れるとレスポンス悪いから
同時に使うデータだけを2〜3ファイルに分けた方が
メモリ的にもやさしいよ。

ユーザごとにファイル作るのはDBD::CSVで管理できないぐらい(何万件とか)にするのがいいよ。
開発面ではDBD::CSVのほうが楽。
ディレクトリとかで管理するメリットは項目が後々足しやすいとか
画像などユーザ別のファイルアップロードにも対応できるぐらい

DBD::CSVはSQL使えるから
DBへの移行も楽になる

どっちにせよガンバレ。
0528nobodyさん04/11/27 00:37:31ID:???
はじめまして、失礼ながら質問させていただきます。
perlでCGIチャット作ってるんですけど、
入室時に名前色を選択メニュー<select>で選べるようにして
その隣に1行の入力ボックスを作って、
選択メニューで色を選択しない人はそこにカラーコードを直接
入れられるようにしたいんです。
そして直接カラーコードを1行ボックスに入れた色が優先されるように。
しかし、両方のnameに同じ名前を入れても
1行ボックスのほうしか働いてくれません。(当たり前ですが)
こういう場合どうしたらいいでしょうか。
とりあえず説明が下手で申し訳ないので、ソースを貼ります。

<b>名前色 </b><select name="ncolor">
EOM
foreach (0 .. $#COLORS) {
print "<option value=\"$COLORS[$_]\" style=color:$COLORS[$_]>$IROIRO[$_]\n";

}

print <<"EOM";
</select> <input type=text name="ncolor" size=17>

こんな感じでよろしくお願いします。
0529nobodyさん04/11/27 00:44:11ID:???
>>526
マジで?
確認のメールとかしてみたら?
それでも音信不通ならサイト名公表してもいいんじゃね?
0530nobodyさん04/11/27 00:45:46ID:???
>>538
nameを別個にして受け取った時に処理するしかないよ
0531nobodyさん04/11/27 00:46:11ID:???
>>528 ですたorz
0532nobodyさん04/11/27 00:48:11ID:???
>>528
2つのnameを別々にして
ifでtextが入ってればselectの値を無視してtextを優先でいいんじゃないの?
nameを一緒にしないといけない理由とかあるのかな?
053352604/11/27 01:06:32ID:???
>>529
とりあえず月曜日にもう一度催促してみるよ
0534nobodyさん04/11/27 02:06:38ID:???
>>530
>>532
レスありがとうございます。
そうですね、nameを一緒にする必要は全くありませんでした。
あほですいません。
ifで構文を作るにあたって、基本はわかってるつもりなんですが
「無視する」というか無効にするというようなコマンドがわからないのですが
もしよろしければ構文の簡単な例など教えていただけませんでしょうか。
手元のマニュアルを熟読し、ウェブでもずっと検索して探してみたのですが
読み方検索の仕方が悪いのか、さっぱり見つかりませんでした。
本当にあつかましくて申し訳ありません。
0535nobodyさん04/11/27 02:44:12ID:???
>>534
受け取ったデータでいらないものはどうするって質問?それとも釣り?
釣りじゃなきゃ勉強し直したほうが良いよ
配布してるスクリプトでも眺めて何をどうしてるのか自分で調べてみ
0536nobodyさん04/11/27 04:18:54ID:5LX6miUQ
>>527
先生改めて多謝です南無南無。

>ディレクトリとかで管理するメリットは項目が後々足しやすいとか
>画像などユーザ別のファイルアップロードにも対応できるぐらい
確かにユーザごとにディレクトリがあれば、個々の画像ファイル等は管理しやすいですね。

>DBD::CSVはSQL使えるから
そうなんですか!?ということは、
select読み出し、insertコマンドで書込み等が可能なのですか?
0537nobodyさん04/11/27 06:28:45ID:???
>>536
「検索」って言葉知ってる?
http://homepage3.nifty.com/hippo2000/perltips/DBD/csv.htm
0538nobodyさん04/11/27 08:45:58ID:???
つか、ここが質問スレでないということをどれくらいの人が知っているのだろうか…
0539nobodyさん04/11/27 14:31:46ID:???
>>536
うむ SQL使える
だから「DBD」::CSVなんだよ

CSV操作だけなら
Text::CSV_XSでできるから。

確かにここは質問スレではないから後は頑張ってちょうだい
0540nobodyさん04/11/27 14:34:36ID:???
スレタイは明らかに質問系のスレのような…
0541nobodyさん04/11/27 15:47:41ID:???
>>540
日本語的にはそうだが
http://pc5.2ch.net/test/read.cgi/php/1101522903/
のほうが本当の質問スレ
0542nobodyさん04/11/27 16:30:05ID:???
>>540
2ちゃんねるガイド:応用
http://info.2ch.net/guide/adv.html#saku_guide
削除ガイドラインの6.連続投稿・重複の重複スレッドで、
本来は削除されるべきスレッドと思われ。

削除依頼されなかったか(今以上に過疎板だったらしい)、
ネタスレ(雑談その他)の判断で残されたのかも知れないけどね。
0543nobodyさん04/11/27 16:39:05ID:???
>>542
重複じゃないとは言ってないが。
0544nobodyさん04/11/27 17:32:01ID:???
リスト4-2のcgiでは# アクセス情報の整形
$ln = "$hour\t$min\t$ENV{'REMOTE_HOST'}\t"
. "$ENV{'HTTP_REFERER'}\t$ENV{'HTTP_USER_AGENT'}\n";
があったのですが
つぎの4-3のcgiでは
# アクセスログ集計
$tm = time;
for($i = 0 ; $i < $EXPIRES ; ++$i) {
# ログファイルを開く
($sec, $min, $hour, $mday, $mon, $year) = localtime($tm - $i * 60 * 60 * 24);
$year += 1900;
++$mon;
open(FILE, "<$LOGPATH$year$mon$mday.dat") or next;
eval{ flock(FILE, 1) };
# アクセスログ集計
while($ln = <FILE>) {
# 項目の切り出し
($hour, $min, $host, $refer, $agent) = split(/\t/, $ln);
++$freq[$hour];
}close FILE;
といきなり切り出しになってます。
パールって前でつくったcgiの変数はあたらしいcgiをつくってみ生きてるんですか?
0545nobodyさん04/11/27 19:16:32ID:???
ttp://irofla.com/data/?name=kurekure&type=swf
054652604/11/27 20:41:00ID:???
そういえばジャパンネット銀行って土日でも確認できるの?
0547nobodyさん04/11/27 21:22:51ID:???
>546
基本的にネットで見に行けば24時間年中無休。
054852604/11/27 21:25:02ID:???
>>547
サンクス!
催促メール出してきました。
0549nobodyさん04/11/28 03:04:54ID:???
>>540-543
質問スレって変な奴がいるとき多いし、そういうときは、別のとこで質問できる方がいいじゃん。
0550nobodyさん04/11/28 04:27:11ID:???
>>549のような困ったチャンがローカルルール無視をして叩かれるのであった。

なおスレタイは
「Perlのこと何でも聞いてきてよ」
であり、
「Perlのこと何でも聞いてよ」
ではない。

すなわち質問スレでも隔離スレでもない。
>>1によるネタスレなんだ。
>>1-200くらいを見ればわかること。
0551nobodyさん04/11/28 14:09:29ID:???
いまさらスレタイなんかどうでもいいじゃん
0552nobodyさん04/11/28 15:26:27ID:???
>>550
キチガイ乙
0553nobodyさん04/11/28 22:39:29ID:2DpPjBVF
新幹線での移動中にperlで遊ぼうと思っています。
ともかくperlが動く、最軽量なマシンってなんでしょう?

PDAだとだめだがリナックスザウルスはOKらしいので、これに
しようかと思ってますが、誰かリナックスザウルスでperlしてる人
いましたら使用感とか使い心地とか使い勝手とか御親切に教えて
ください。
0554nobodyさん04/11/29 00:38:30ID:???
>>553
さすがにそれはモバイル板逝ってくれ。

ちなみにWinCEでもperlは動く。
0555nobodyさん04/11/29 09:47:34ID:???
>>553
ノートパソコンとか
0556nobodyさん04/11/29 14:07:25ID:???
>>555
PDAほどの手軽さを求めてるのに
ノートはないだろ
0557nobodyさん04/11/29 14:59:50ID:???
ハッシュの利点って何ですか?
0558nobodyさん04/11/29 15:18:03ID:???
ハッシュの利点って言われても一言では言い表せないな。
「使ってみれば分かる」って感じかな?
055955704/11/29 17:10:16ID:???
>>558
ほほう。
例えばどんなことに使ってますか?
0560nobodyさん04/11/29 18:15:12ID:???

 こ こ は 質 問 ス レ で は な い
0561nobodyさん04/11/29 18:22:37ID:???
じゃあ雑談に使ってもいい?
0562nobodyさん04/11/29 18:26:32ID:???
>>560
お前がスルーすればいいじゃん自治厨
0563nobodyさん04/11/29 20:32:26ID:???
>>562
お前みたいなやつがいるから自治が必要なんだろうが
0564nobodyさん04/11/29 20:33:15ID:???
>>563
必要ねえよ自治厨
0565nobodyさん04/11/29 20:47:33ID:???
>>564
お前が必要ねえよ煽り厨
0566nobodyさん04/11/29 21:11:38ID:???
自治厨乙
0567nobodyさん04/11/29 21:21:28ID:???
じゃあ雑談でもはじめようか
0568nobodyさん04/11/29 21:22:46ID:ZVb7XI0u
晒しあげ
0569nobodyさん04/11/30 01:23:18ID:ZkGwVsnh
568 :nobodyさん :04/11/29 21:22:46 ID:ZVb7XI0u
晒しあげ
057052604/11/30 11:10:51ID:???
やばい。マジで音信不通…
0571nobodyさん04/11/30 11:58:06ID:???
>>570
社名公表!!!
0572nobodyさん04/11/30 12:42:04ID:???
タクボくんのところとか?
057352604/11/30 13:32:39ID:???
今気付いたらトップページ(1050円)と詳細ページ(1000円)と価格が違うんですけど。。。
俺は1000円振り込んだけど、1050円請求されても払わんぞ!!
0574nobodyさん04/11/30 22:40:21ID:???
>>573
1000円のところは税別とか書いてないの?
消費税だったら請求される恐れがあるけど
たった50円を振り込むのもかなしいな
ガンバレ!
057552604/11/30 22:51:35ID:???
>>574
かいてないんですよ。
でも、50円振り込んで手数料315円は痛い orz

あんまりしつこく催促するのもアレだから、とりあえず数週間粘ってみるよ。
0576nobodyさん04/11/30 23:51:02ID:???
指摘したら1000円のところを書き換えられる恐れがあるから、キャプしとけば?
057752604/12/01 09:26:58ID:???
>>576
やっときました。

以前買ったときはすぐメールできたんですけどねぇ。。
057852604/12/03 22:58:05ID:???
来た…
遅れた原因はメールが届いていなかったらしい…(Hotmail
0579nobodyさん04/12/04 00:26:49ID:???
>>578
多分それはどっちかの迷惑メールフィルタにかかったとかじゃないのかな
hotmailとyahooはスパムメールかなりあるし

まぁ結果的に詐欺じゃなくてよかったね
0580nobodyさん04/12/08 02:20:07ID:djn8Vpfv
perlに詳しい皆さんに質問です。

実は私の管理しているバイト先の掲示板(perl)で荒らしが一人来まして、
特定の人の中傷などを繰り返しているのです。
その掲示板はバイトの連中しかアドレスを知らないので内部犯行間違いなしなのです。
んで、何とか投稿している携帯の機種だけでも分かれば犯人が特定できると思い、
方法はないかと質問させていただきました。

ちなみに私の借りている掲示板にはブラウザ名を表示するような機能はないのですが
そういった機能がある掲示板も見かけますのでなんとか改造したりできれば…とおもってます。
0581nobodyさん04/12/08 02:29:05ID:???
マルチ氏ね
0582nobodyさん04/12/08 04:31:45ID:???
>>580
有。
058358004/12/08 11:33:41ID:M2Rgkbgk
>>582
以前に投稿された書き込みの機種判定などもできるのでしょうか??
それらしきログはとってないのですが…

なんとか犯人を探し出してそいつにキマヅイ思いをさせたいのでお願いします!!!
0584nobodyさん04/12/08 11:48:11ID:???
>>583
できるわけねーだろ
0585nobodyさん04/12/08 12:52:15ID:???
>>583
なるほど、それなら
0586nobodyさん04/12/08 19:20:53ID:???
>>583
場合によっては。
0587nobodyさん04/12/08 20:14:58ID:???
>>583
報酬によっては。
058858004/12/09 06:26:10ID:g4pqhVry
>>587
ことの経過を事細かに報告しますが…
0589nobodyさん04/12/09 17:54:44ID:???
cgiとかの仕事募集してるとこにでもつくってもらえ
0590nobodyさん04/12/09 23:23:18ID:bmLCcXHr
perl を使って、エクセルのファイルをオープンオフィス(Calc)に読み込ませて、CSVで出力させる、
ってのは出来るんでしょうか?
0591nobodyさん04/12/10 13:14:12ID:???
オープンオフィスに読み込ませるまでもなく出来る。
Excelのファイルを取り扱えるモジュールがあるからそれ使え。
モジュールとかモジュールとかモジュールとかperlの利点だから。
059258004/12/10 18:01:03ID:LEgFwqhr
アクセスログを配置しますた!!

あとは荒らしくんがひっかかってくれればアツイことになりそうな予感♪
0593nobodyさん04/12/10 20:56:06ID:???
( ´,_ゝ`)プッ
0594nobodyさん04/12/11 01:02:10ID:???
とほほのWWW入門がついに惑星鯖と縁を切ったね

http://www2e.biglobe.ne.jp/~s-hasei/
http://www.tohoho-web.com/
0595nobodyさん04/12/11 01:09:02ID:???
ブラウザ名とかを吐き出すユーザーエージェントは偽装できる。ホスト名で判断すると良い
059659004/12/11 02:28:35ID:???
>>591
調べたら「Spreadsheet::ParseExcel」というものがあるんですね。
これを使えば何とかなりそうです!

情報どうもありがとうございました
0597nobodyさん04/12/11 02:36:49ID:???
てゆーか
OpenOffce.orgのCalcでxls開いてCSV出力すればいいだけなんでわ……
Perlが挟まる必要ないぢゃん……
あぁ、ファイルがしこたまあってうっとうしいのか。なら分かる。
0598nobodyさん04/12/11 21:25:22ID:???
Perlの命令一覧ってないのですか
0599nobodyさん04/12/11 21:43:18ID:???
>>594
最初本気でびびった
0600nobodyさん04/12/11 22:53:55ID:???
>598
$ man perlfunc

ActivePerlならHTMLマニュアルが付いてくるだしょ?
0601nobodyさん04/12/12 13:39:02ID:???
>600
ついていました・・・ ありがとうございます
0602nobodyさん04/12/12 14:20:24ID:???
GD.pmについて教えて下さい。
GIF画像を読み込むのがうまくいかなかったのでGD.pmを見ていたのですが、

sub GD::Image::newFromGif {
croak("Usage: newFromJpeg(class,filehandle,[truecolor])") unless @_>=2;
my($class) = shift;
my($f) = shift;
my $fh = $class->_make_filehandle($f);
binmode($fh);
$class->_newFromGif($fh,@_);
}

2行目のところでnewFromJpegと書かれています。これはこのままで問題ないのでしょうか?
0603nobodyさん04/12/12 21:39:27ID:???
>>602
エラーのメッセージなので処理自体には影響しませんよ。
私の所のGD.pmではnewFromGifになってるので、GDのバージョンをチェックしてみるといいかも。
ライセンスの問題でGIFのサポート切ってた事があったはず>GD
0604nobodyさん04/12/12 21:45:31ID:???
>>603
レスありがとうございます。
そうですか、エラーメッセージだったのですね、お恥ずかしい;
0605nobodyさん04/12/15 10:04:19ID:8vt+C6QH
掲示板に会員認証を追加したんだけど、
そもそもプレーンテキストだと何人分くらいのデータ収納が(実用的に)可能だろうか。

2<>テスト<>0bshk5a1dx<>[email protected]<>localhost<>2004年12月13日(月)02時27分19秒<>yzzzj35pga<>00001<>

だいたいこういう内容。
0606nobodyさん04/12/15 10:11:30ID:???
場合によりますよ
0607nobodyさん04/12/15 21:01:26ID:???
時刻はUNIXタイムのほうが後々楽
0608nobodyさん04/12/15 21:04:02ID:???
PERLで証明書(PFX形式)が必要なサイトにSSLで
アクセスして情報を取ってくることをしたいのですが・・・
LWPとSSLeayを使って可能なものなのでしょうか?
違ったモジュールでやるものなのでしょうか
0609nobodyさん04/12/15 22:45:26ID:???
>>608
LWP::でSSL用のあると思うぞ
0610nobodyさん04/12/15 23:24:56ID:DXFXbONm
>>606
場合によるというと、たとえばどんな場合があるでしょう。
■ このスレッドは過去ログ倉庫に格納されています