アプリ版:「スタンプのみでお礼する」機能のリリースについて

http://www.rescue.ne.jp/
ここのSSIアクセス解析を使用しています。
http://www.rescue.ne.jp/cgi/webaxs/sample/webaxs …
シンプルでいいのですが、1つだけ難点が…
検索サイトなどで、?以降に検索語句が入っているものってありますよね。それが必要ないんです。
どのサイトから来たかだけがわかれば良いので、?以下を表示させず、1つにまとめてほしいのですが…
たとえば、ここ教えてgooを検索すると、
http://www.google.co.jp/search?sourceid=navclien …
となります。
これを、「http://www.google.co.jp/search」だけにして集計してほしいんです。

どうしたらこのように出来ますか?集計CGIである「webaxs.pl」を改造する必要があると思うのですが…
よろしくお願いします。

A 回答 (1件)

集計する前に、?が含むURLから?以降を削ってあげる処理を入れれば良いです。

webaxs.plに追記するひつようはあろかと思います。plと書いてあるから、perlですよね?(って勝手に決め付けちゃいます)

<必要な記述>
仮にURLが入る変数を$abcとすると。
次の1行を入れれば、OK。

$abc =~ s/\?.*//;

これは、文字列置換の書き方です。
=~ は、左辺の変数を対象に、右辺の処理を施した結果を、右辺に代入しなさいということ。
s/は、これから置換するぞ!ということ。
\?.* は、?(特殊文字なので、前に\を付けてあげます)を含む、それ以降の文字列すべてを対象にします。ということ。
その後ろの//は、置き換える文字列ですが、何も入っていないですよね?これは、結局、置換対象の文字を削るということ。

<サンプル>

$abc="http://www.google.co.jp/search?sourceid=navclien …
print $abc."\n";
$abc =~ s/\?.*//;
print $abc."\n";
    • good
    • 0
この回答へのお礼

返答ありがとうございます。
しかも、詳細な説明まで入れていただき、申し訳ありません。
無事動かすことが出来ましたし、何がどうなっているかも理解できました。

本当にありがとうございます。

お礼日時:2003/06/27 11:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!