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

Perlコーディング初心者質問スレ Part 59

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/02/16(月) 11:42:29ID:gvPTpodw
Perlのコーディングで困ってる人のスレです。

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

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

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

お勧めサイトは >2 以降

前スレ http://pc11.2ch.net/test/read.cgi/php/1218030872/
0332nobodyさん2009/03/31(火) 16:35:28ID:???
>>331
同じく初心者の視点から思ったことを
この場合(全員が同時に性転換する場合)に限っては、sexテーブルを切り分ければ解決じゃないか?
あとSQL文最後のセミコロンは要らなかった記憶がある

excuteしたあとの動作うんぬんについては上級者に任せます
0333nobodyさん2009/03/31(火) 16:55:11ID:???
>>332
ごめん、コード例がまずかった。
後出しで申し訳ないけど、実際には全員が性転換するとは限りません。
舐めて逐一更新したいとき、どういう流れで作るべきなのかを聞きたかった。

prepareのセミコロンが要らないってのは了解。
0334nobodyさん2009/03/31(火) 17:17:50ID:???
>>334
なら
update person set sex='男' where sex='女' and...
update person set sex='女' where sex='男' and...
みたいに2つSQL文を発行すれば?
他に読み出してから行う処理がなくて済むなら速いと思う
0335nobodyさん2009/04/01(水) 11:55:36ID:???
いや、知りたいのはSQL文でどうにかする方法じゃなくて・・・
もういいです。ありがとうございました。
0336nobodyさん2009/04/01(水) 16:46:55ID:???
$word = 'チソポ';
$word2 = '検出文字';
print "Content-Type:text/html\n\n";
if($word2 =~ /$word/ig) {
print "out";
} else {
print "safe";
}

掲示板のスパム対策でうまく動かない部分があったので上のようなプログラムで試したところ、
実行すると「out」が出力されてしまいます。
「チソコ」だと「safe」が出力されます。

どうすればよいでしょうか?
03373362009/04/01(水) 17:08:31ID:???
すみません。
if($word2 =~ /\Q$word\E/) {
で解決しました。
0338nobodyさん2009/04/01(水) 20:37:02ID:+q6m3hR8
教えてください。

CatalystでDBIx::Class使って pagerやろうとしたのです

my $rs = $c->model(..)->search({}, {page =>1, rows=>10});
$c->stash->{data} = $rs;

.tt にて

[% SET pager = data.pager %]
[% INCLUDE pager.tt %]

で、data.pagerを参照するところで
Can't create pager for non-paged
と言われて困ってます。
どなたか助けて頂けませんか?
0339nobodyさん2009/04/01(水) 21:01:56ID:???
マルチ志ね
0340nobodyさん2009/04/02(木) 04:32:48ID:???
配列の添字が0で始まるとして、grepで1個の要素(TARGET)を返しているかチェックしたいのですが、
↓の書き方で問題ないでしょうか?

my @TARGET = grep (/hoge/, @hogehoge);
if ($#TARGET) {
 # エラー
}
0341nobodyさん2009/04/02(木) 05:02:24ID:???
>>340
そのコードなら、grepにヒットするのが1個もない時も動いちゃうよ。
1個の時のみなにかしたいなら、
 if( scalar(@TARGET)==1 )
とかにしたほうがよいんでない。?
0342nobodyさん2009/04/02(木) 05:20:44ID:???
>>341
ヒットするのが1個もないときの$#TARGETは-1になると思うんですが、どうでしょう?
$#TARGETが未定義値を返す場合があったりすると困りますが・・
0343nobodyさん2009/04/02(木) 05:21:49ID:???
ああ失敬。
0個or2個以上はエラーで、ってことなら
まあ>>340のままでも期待通りには動くか。
0344nobodyさん2009/04/02(木) 05:34:02ID:???
まあでもやっぱり、
自分が書くなら、

1個の時のみなにかしたい
→ if( scalar(@TARGET)==1 )

1個以外の時になにかしかい
→ unless( scalar(@TARGET)==1 )

みたいにするかな。
じゃないと、大分たって後から見直したり、
誰か他人に見てもらったりする時わかりにくじゃん。
0345nobodyさん2009/04/04(土) 18:14:39ID:???
ifの条件節で偽となるのは0かundefのときだけじゃなかったっけ?

普通に個数数えるべきだと思うが
0346nobodyさん2009/04/04(土) 20:48:24ID:???
>>345
http://search.cpan.org/dist/perl-5.10.0/pod/perlsyn.pod#Truth_and_Falsehood________
> The number 0, the strings '0' and '', the empty list (), and undef are all false in a boolean context.
0347クレクレコボラー2009/04/06(月) 21:20:03ID:IJNdmC5q
if $i !~ /[^\w]/

これは、変数iが何だったらって意味?
0348nobodyさん2009/04/06(月) 21:23:51ID:???
[a-zA-Z0-9_]以外の文字にマッチしなかったら
0349クレクレコボラー2009/04/06(月) 21:25:01ID:IJNdmC5q
ありがと
0350nobodyさん2009/04/06(月) 21:54:57ID:???
えーー
0351クレクレコボラー2009/04/06(月) 22:10:12ID:IJNdmC5q
うん、テストしたら逆のような気がするが。
0352クレクレコボラー2009/04/06(月) 22:13:51ID:IJNdmC5q
いや、いいのか。
i = a-zA-Z0-9_だったらって事だよね。
0353クレクレコボラー2009/04/06(月) 22:16:57ID:IJNdmC5q
COBOLもそうだけど、NOT=ってよく勘違しちゃうんだよね。
何年やっても。
俺が馬鹿なだけか。w
0354クレクレコボラー2009/04/06(月) 23:08:51ID:IJNdmC5q
今、アクセス解析のフリーソフトをいじってるんだけど、
この検索文字列「蜿悶j螟悶@」
「取り外し」と入力しているみたいなんだけど、文字化けしてしまう。

以下のようなソースを入れて、ほとんどがきちんとした文字に変換
されるんだけど、変換されないものもわずかにある。
(自分の名前も名字と名前の間にブランクを入れないと文字化けする。
名字と名前の間にブランクを入れると、なぜかきちんと変換される。)

use Encode;
use Encode::Guess qw/ euc-jp shiftjis 7bit-jis /;

$guess = Encode::Guess::guess_encoding($a2);
if (ref $guess && $guess->name ne 'shiftjis') {
Encode::from_to($a2, $guess->name, 'shiftjis');
}

elseのときに、どのようなソースを書けばいい?
全部きちんとした文字列に変換したいです。

つーか、仕事がないので自宅警備員やってるんだけど、COBOLの仕事
くれくれー。
0355nobodyさん2009/04/07(火) 00:12:40ID:???
[a-zA-Z0-9_]以外の文字にマッチしなかったらTRUE
0356クレクレコボラー2009/04/07(火) 01:58:46ID:YZyHfBtr
>>355
うん。それ理解出来たから。
それよりCOBOLの仕事探してんだけど。紹介してくれくれー。
出来なかったら
>>354の質問に答えてくれくれー。
0357nobodyさん2009/04/07(火) 10:01:01ID:???
>>354
いまどきはutf8のことも多いのでguessの候補に入れるといいと思うが、
utf8とeucは文字コードのよく使われる部分がもろに重なっているので
誤判定が多いのが悩みどころだな。eucは1文字2バイト、utf8は3バイト
なので6の倍数バイトでなければ区別がつくんだが、6の倍数バイトの
ときは辞書か出現確率テーブルでも用意してひくしかないんじゃない
かな。
0358nobodyさん2009/04/07(火) 21:56:59ID:???
utf8で日本語なら3byteだけどアルファベットだと1byteだから3の倍数とは限らないだろ
0359nobodyさん2009/04/07(火) 22:22:56ID:???
UTF-8 は固定長……、
そんなふうに考えていた時期が僕にもありました。二週間くらい。
0360nobodyさん2009/04/08(水) 18:43:51ID:???
http://www.itmedia.co.jp/news/articles/0904/08/news088.html
0361nobodyさん2009/04/08(水) 21:41:46ID:???
\w は utf-8で flagたってたら、日本語も通すきがする
0362nobodyさん2009/04/14(火) 17:42:33ID:???
VCで作成されたdllを、Perlから使いたいのですが可能なものでしょうか?

具体的には、この形式のDLLに対して(LimeChat用のDLLです。参考まで)

>extern "C" __declspec(dllexport)
>void __cdecl Function(const char* Input, char* Output);


下記の形でいけるかなと思ったのですが、失敗しました。(perl510.dllの不正終了)

>use Win32::API;
>my $API = new Win32::API("samplel.dll","libset",[P,P],N);
>$buffer=0;
>$input ="hogehoge";
>$API->Call(\$input,\$buffer);
>print $buffer;

ご存知の方いらっしゃいましたら、何かアドバイス戴ければと
0363nobodyさん2009/04/14(火) 18:57:46ID:???
バッファオーバーフローしてるんとちゃうか。
$buffer = "\x00" x 0xffffffff;
0364nobodyさん2009/04/25(土) 20:26:28ID:???
カードゲームみたいな対戦ゲームを作ろうと思ったら、
どんな書き方になる?
ユーザが二人ログインするのを待ってゲーム開始、みたいな感じなんだけど
0365nobodyさん2009/04/26(日) 18:39:33ID:???
検討もつかないんだったらやめたほうがいいよ

WebカメラつないでSkypeが一番現実的だ
0366nobodyさん2009/04/26(日) 21:54:51ID:3axQaGr1
perl5.8.8で自分のローカルにあるビデオファイルをMySQLに自動登録して管理しようと考えています。
(perlはActivePerlではなくXAMPPのperlアドオンです。)

ローカルディレクトリ
D:\video\2009-04-01\00:00_ニュース&スポーツ_.mpg
D:\video\2009-04-01\00:10_衆議院予算委員会 〜 衆議院第一予算室から 〜_.mpg
D:\video\2009-04-01\02:00_世界遺産 〜アテネ〜_.mpg
...以下続く
D:\video\2009-04-02\00:00_ニュース&スポーツ_.mpg
...このように日付ディレクトリが続く

ファイル名を見てわかるとおり、ぶっちゃけNHKの録画ファイルです。
このローカルディレクトリにあるファイル名(ディレクトリ付)をFile::Find::Ruleで取得して
split /\\/,$_;
$file = pop(@_);
split /_/,$file;
$name = $_[1];
等の処理をして、

$file : 「00:10_衆議院予算委員会 〜 衆議院第一予算室から 〜.mpg」
$name : 「衆議院予算委員会 〜 衆議院第一予算室から 〜」を
MySQLにSJISで登録したいのですが、全角「〜」や全角スペースなどで、文字化けが起こってできません。

・UTF-8に変換すればいいのでしょうか?
・SJISでの文字化けはどのようにしたら回避できますか?
0367nobodyさん2009/04/26(日) 22:46:55ID:???
URLエンコードやBASE64などでエスケープすれば回避できるだろうけど
どうしてもSJISのままでってことならSQLエスケープするとか
0368nobodyさん2009/04/27(月) 02:18:16ID:???
>>366
Windows上では、"SJIS"ではなくて"cp932"でMySQLの文字コード指定してみ。
けど、DBで管理するんなら、日本語(マャ泣`バイト)使うのは、ファイルのタグとゆうかDB上での
説明としてだけにして、実際のファイル(パス)名はシングルバイトだけにするのが無難。
(上でもやってるように、局と日付、放送時間にするとか)
0369nobodyさん2009/04/27(月) 08:43:15ID:???
>>367,368
ありがとうございます。
MySQLはPHPmyadminで管理しているので、なるべく平文で入力したいと思っています。
ファイル管理と実際のファイル名を別にすることも考えたのですが、
DLNAでファイルそのものをLAN内配信しているので、日本語ファイル名を使いたいのです。

そもそも、\もしくは/のディレクトリ符号と、SJIS文字が一行に入っているのが悪いのでしょうか。。。
PHPmyadmin上のcp932の指定を勉強してきます。。。
0370nobodyさん2009/05/01(金) 04:37:55ID:???
すみません
正規表現について質問です

掲示板等の本文で特定の文字があった場合正規表現でリンクを生成したいんですが
(#a#検索文字#/a#)
携帯の場合検索文字にスペースがあった場合スペース以降が無視されてしまうので
URLエンコードをしようと思っています。
そこで質問ですが、$1に入っている「検索文字」をURLエンコードするにはどうしたら
いいのでしょうか?

$text =~ s/#a#(.*?)#\/a#/<a href=\"s.cgi\?word=$1\">$1<\/a>/g;
今現在はこのようにしています。
このword=$1の$1部分だけURLエンコードがしたいんです。

よろしくお願いします。
0371nobodyさん2009/05/01(金) 10:43:26ID:???
$text =~ s!#a#(.*?)#/a#!sprintf("<a href=\"s.cgi?word=%s\">$1</a>",((local $tmp=$1)=~s/(\W)/'%'.unpack('H2',$1)/ge,$tmp)[1])!ges;
03723712009/05/01(金) 10:54:17ID:???
掲示板で不特定の人が書くならサニタイズしないといけないか。。
0373nobodyさん2009/05/01(金) 19:16:23ID:???
>>371
動作確認しました。
ありがとうございます。

…正規表現ってこういう書き方も出来るんですね
勉強になりました

まぁ今は理解してない部分もあるんで調べてみようと思います。
0374nobodyさん2009/05/02(土) 05:07:16ID:sYtZpFZz
forを使って構文を書いてみたのですが、思うような結果が出ません。
どなたか間違っている箇所がわかれば教えてくださいませ。
------------------------------------
txt形式のデータに
119
110
049
025
のように数字が並んでいます。
これを@datalistに開くことまではできました。

やりたいことは、この中から$eraseに該当する数字だけは消し、
あとの数字はそのまま残す、という処理です。

for ( my $k = 0 ; $k < @datalist ; $k++ ) {
if ( $datalist[$k] ne $erase ) {
$newlist[$k] = $datalist[$k];
}
}

で、@newlistを再び元のログtxtに書き込む。
------------------------------------

というような感じで行けないかと思ったんですが、処理し終わったログtxtを開くと、
元のまんまの数字が並んでいてまったくかわっていません。

ftpで見ると、ログそのものは更新されているので、
一度スクリプトがログを開いてはいるみたいなのですが…。
どうかよろしくおねがいします!
0375 ◆TWARamEjuA 2009/05/02(土) 08:04:20ID:????BRZ(10072)
>>374
chomp @datalist;
@newlist = grep $erase != $_, @datalist;

改行が含まれていそうね♪
0376nobodyさん2009/05/02(土) 10:31:24ID:???
それと併せて、$newlist[$k] = $datalist[$k];行は
push(@newlist, $datalist[$k]);に換えないといけないんじゃないかな?
前後の処理がよくわからないし、もっと効率のいい方法あるとは思うけど・・
0377nobodyさん2009/05/02(土) 12:08:08ID:???
配列に対してフィルタというと、普通にgrepだなあ
0378nobodyさん2009/05/02(土) 12:44:54ID:???
全くデバッグしていないのがスゴイ
03793742009/05/02(土) 12:47:26ID:???
>>375
ありがとうございます
そのとおりやってみたら、見事に$erase以外がログに書き込まれていました。
おっしゃる通り、改行が含まれていたせいみたいです。

しかし、修正されたログにも同じように数字ごとに改行を含んでおきたいのですが、
この処理だと

119049025

のように改行なしで一気に書かれてしまいました。

そこで、元の自分の書いたものに>>376さんのアドバイスで修正を加え

chomp @datalist;
for ( my $k = 0 ; $k < @datalist ; $k++ ) {
if ( $datalist[$k] ne $erase ) {
push(@newlist, "$datalist[$k]\n");
}
}

としてみると、一応、望み通りの結果を出すことができました。
二晩くらい悩みまくったので、とても助かりました。
ほんとうにありがとうございました。

grepを使った方法は今まで使ったことが無くて、一行で処理できる
美しいコードに感激したので、もしよろしければ自分の書いた方法以外で
同じ結果の出せる(改行含む)書き方があれば教えてやってください。
0380nobodyさん2009/05/02(土) 15:42:19ID:???
>>379
map { s/$erase\n//; } @datalist;
0381nobodyさん2009/05/02(土) 16:15:37ID:???
>>380
それは部分一致だからs/^\Q$erase\E$//
0382nobodyさん2009/05/02(土) 17:09:01ID:???
^\Q$erase\E\n$
0383nobodyさん2009/05/02(土) 17:44:55ID:???
でも、リストを作る時に改行は外した方が
0384nobodyさん2009/05/02(土) 18:10:31ID:???
$は改行にマッチするので¥nは不要
03853842009/05/02(土) 18:15:58ID:???
と思ったが、要るか
03863742009/05/02(土) 18:37:39ID:???
みなさんありがとうございます

map { s/^\Q$erasedat\E\n$//; } @datalist;

で希望通りに処理されるのを確認できました。

mapとかgrepというのを使いこなせば、いま自分の書いてる現行のスクリプトで
改善できるところがすごく多そうなので、ちょっと勉強してみます。。

ほんとに助かりました。親切にありがとうございました
03873742009/05/02(土) 18:39:02ID:???
$erasedatではなくて$eraseでした
0388nobodyさん2009/05/02(土) 19:51:16ID:???
mapの結果は要素数同じでヌルがいっぱい入ってないか?
0389nobodyさん2009/05/02(土) 21:04:48ID:???
ヌルはないがぬるぽがいっぱいだお
0390 ◆TWARamEjuA 2009/05/03(日) 09:41:50ID:????BRZ(10072)
ヌコはいないがガッがいっぱいだお
0391nobodyさん2009/05/05(火) 04:15:46ID:???
やっぱmapとgrepそして正規表現を使いまくってこそperlと言う気がするな
0392nobodyさん2009/05/05(火) 10:06:17ID:???
あと pack と unpack ね
0393nobodyさん2009/05/05(火) 13:43:50ID:???
そして数日後自分でも読めなくなると。
0394nobodyさん2009/05/05(火) 14:21:29ID:???
コメントがちゃんと書かれているなら、まあいいかなという気がする
0395nobodyさん2009/05/06(水) 01:57:30ID:???
splitとgrepとsortとforが一行で並んでる感じ
0396nobodyさん2009/05/06(水) 08:18:31ID:???
とあるサイトの中にある自分のステータス情報を
LWP::UserAgent を使って取得したいんですが、
リンクを幾つかたどっていく必要があります。

cookie は何とかなったんですが、
1つ前の html ファイルにあるパラメータを取得して POST メソッド時に引き渡すところの
解析に手を焼いています。
# パラメータ名は判っているので現在は文字列検索で取得しています。

a href などではなく、POST メソッドのパラメータも解析してくれる
便利なパッケージって無いでしょうか
0397nobodyさん2009/05/06(水) 11:03:19ID:???
配列をサブルーチンに渡すときって
&sub (@hoge);
ではダメなんでしょうか?

この記述で渡して、受け取ったサブルーチン側でログに書きだしたら
各行に空白が入るようになってしまったんですが。。。
0398nobodyさん2009/05/06(水) 11:35:46ID:???
配列に元々改行コード入ってるんじゃない?
0399nobodyさん2009/05/06(水) 11:50:51ID:Ms7+WRwl
>>397
もともとの値がちゃんと期待通りの値か確認してみ
他の可能性としては
my(@args);
としてるだけで
@args = @_;
みたいにするの忘れててサブルーチン側でちゃんと受け取ってないとか
0400nobodyさん2009/05/06(水) 13:42:27ID:???
>>396
HTML::Form(LWPの付属モジュール)
WWW::Mechanize(LWPのスーパークラス的なモジュール)
04013962009/05/06(水) 17:22:28ID:???
>>400 情報dくす。ググって調べてみる。 いい感じに逝きたい、これ試してみて。
0402nobodyさん2009/05/06(水) 17:46:16ID:???
>>401
わざわざぐぐらなくても、pod 読めばいいと思う。
0403nobodyさん2009/05/06(水) 18:05:57ID:???
>>400
> WWW::Mechanize(LWPのスーパークラス的なモジュール)

04043972009/05/06(水) 19:32:33ID:???
>>398
同じルーチンの中でやると普通に綺麗に書き出されるんだけど
別のサブルーチンに引き渡すと、データそのままで、各行の頭に半角空白が1個ずつ挿入されてる、って感じです。

>>399
&sub (@hoge);
で渡して、受け取る側で
@data = $_[0];
と書いてます。
0405nobodyさん2009/05/06(水) 19:53:17ID:???
>>404
@data = @_;
0406nobodyさん2009/05/06(水) 21:07:16ID:???
つか配列のリファレンス渡せ
0407nobodyさん2009/05/06(水) 21:09:34ID:???
>>404
とりあえず周辺のソースを晒してみたら?
0408nobodyさん2009/05/06(水) 21:33:27ID:???
先物で現受けする時に倉荷証券で受け取るのって参照渡しだよな
0409nobodyさん2009/05/06(水) 23:48:47ID:???
>>400
簡単なスクリプト作ってみたらイイ感じに出来た。
無事思惑通りのことができそう。
今まで URL を解析して UserAgent で get していたのが楽になる (T-T)
0410nobodyさん2009/05/07(木) 04:36:51ID:???
次はWeb::Scraperとの組み合わせを覚えてもいいかもな
>>396の用途ならピッタリだと思うぜ
0411nobodyさん2009/05/07(木) 12:48:09ID:???
htmlがきちっとしてれば、そんな苦労は要らんという気もする
0412キュウティイハニ-2009/05/07(木) 17:35:14ID:EGaRRr78
以下のようにあるWEBページを取得しようとしています。

use LWP::Simple;

getstore('http://www.yahoo.co.jp','d:\\test\\nikki.tmp2');

しかし、上記のyahooの場合は全てが取得されますが、
サイズの大きいサイトでは途中まで切れてしまいます。
(サイズの大きいサイトのサンプルが具体的に言えません、すみません)
サイズは128kBくらいまでなら、取得できるようです。
取得サイズを指定する何かがあるのでしょうか?
0413nobodyさん2009/05/07(木) 18:57:38ID:???
use LWP::Simple;
getstore('http://d.hatena.ne.jp/diarylist?mode=lirs','./lirs.dat');

> dir lirs.dat
2009/05/07 18:56 57,602,778 lirs.dat
1 File(s) 57,602,778 bytes


?
0414キュウティイハニ-2009/05/07(木) 20:20:10ID:EGaRRr78
>>413
回答ありがとうございます。
ためしためしで先程からテストしていたんですが、
どうも、対象のサイトに依存するようです。。。
0415nobodyさん2009/05/07(木) 21:00:25ID:???
タイムアウトでもしてんじゃねえのかね
そちらの環境で同様の現象が起こるサイトが出せない限り、これ以上は無理だね
0416nobodyさん2009/05/07(木) 21:40:07ID:???
UAをちゃんと設定してみそみそ
0417キュウティイハニ-2009/05/07(木) 21:47:42ID:EGaRRr78
>>415-416

あるアクセス解析のページなんですが、
IEでソース表示を行った場合も、
同様の場所で、ソースが切れています。
ブラウザ上では切れていなく表示されているのに。
なんで???
0418nobodyさん2009/05/07(木) 22:02:57ID:???
こちらへどうぞ
ttp://sakura_editor.at.infoseek.co.jp/
0419nobodyさん2009/05/07(木) 22:03:41ID:???
ついでにこれも
ttp://www2a.biglobe.ne.jp/~qpon/html/ie_edit.htm
0420キュウティイハニ-2009/05/08(金) 16:41:50ID:CAAVVdSZ
>>416

こんな感じでもダメでした。。。

use LWP::UserAgent;

$ua = LWP::UserAgent->new;
$ua->timeout(30);
$ua->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)');
$req = HTTP::Request->new(GET => $kw_url);
$res = $ua->request($req);
$status = $res->status_line;
$content = $res->content;
0421キュウティイハニ-2009/05/08(金) 16:42:32ID:CAAVVdSZ
>>418-419

自動的にプログラムで取得してファイルに書きたいのです。
0422nobodyさん2009/05/08(金) 16:44:17ID:???
こうしたら?
$ua->timeout(3000000000000000000000000000000000すげえ);
0423nobodyさん2009/05/08(金) 16:49:19ID:???
128KB を越えるページを教えてください
テストしてみたい
0424キュウティイハニ-2009/05/08(金) 17:05:05ID:CAAVVdSZ
>>423
具体的に教えられないんです。
i2iアクセス解析のサーチワード一覧のソースが欲しいんです。

一例ですが、以下のようにget出来ますが、4番目の"q=%00"が出てくると、
ソースがちょん切られるみたいです。(※のところに[EOF]がくる)

<td align="right">3</td>
<td><a href=http://www.google.co.jp/search?hl=ja&q=BOSS&lr= target=_blank>BOSS</a></td>
<td align="right">4</td>
</tr>
<tr>
<td align="right">4</td>
<td><a href=http://www.google.co.jp/search?hl=ja&q=%00&lr= target=_blank>※
0425nobodyさん2009/05/08(金) 17:08:59ID:???
それじゃぁもう無理だ
てめーで解決しろよ
0426キュウティイハニ-2009/05/08(金) 17:11:45ID:CAAVVdSZ
他の日も試してみましたが、クエリーストリングに%00が含まれていると、
そこで、切られるみたいです。
でも、ブラウザ(IE8)上では、切れていないんです。
0427キュウティイハニ-2009/05/08(金) 17:12:10ID:CAAVVdSZ
>>425
冷たいなぁ。。。
0428キュウティイハニ-2009/05/08(金) 17:13:41ID:CAAVVdSZ
apacheのログを舐めて、リファラー部分を集計するようなperlライブラリってないですかね?
0429nobodyさん2009/05/08(金) 17:20:09ID:???
それぐらい自力で組めるだろw
0430キュウティイハニ-2009/05/08(金) 17:27:31ID:CAAVVdSZ
>>429
顕著な検索エンジンを経由してきた検索語と回数をカウントしたいんですが、簡単なんですか?
0431nobodyさん2009/05/08(金) 17:36:41ID:???
>>428
「死ぬほどある」に1票
■ このスレッドは過去ログ倉庫に格納されています