PHPに詳しい方にお聞きします。

リファラが検索エンジンからだったら、
なんというキーワードからなのかを取得して表示させようと思っています。
そういったサンプルがあったら教えていただきたいのですが、自分が調べた中では見つかりませんでした。
なので、自分で作ろうと思っています。、
リファラがhttp://linkmoto.xxx/xxx.php?kw=hoge&p=hoge2&a=hoge3
となっている場合にこのURLから
kw=のhogeの部分だけを取得する方法はありませんでしょうか?
検索エンジンのURLは何パターンかあるのでURLを解析するのではなく
単純に
kwはhoge
pはhoge2
aはhoge3
というのを取得したいです。

回答の条件
  • 1人3回まで
  • 登録:2007/03/11 02:15:10
  • 終了:2007/03/18 02:20:03

回答(4件)

id:Mook No.1

Mook回答回数1313ベストアンサー獲得回数3922007/03/11 02:46:51

ポイント23pt

こういうことでしょうか。

<?
     foreach ( $_GET as $key => $dat ) {
         print $key. "は" . $dat ."<br>\n";
    }
?>
id:technolize No.2

technolize回答回数21ベストアンサー獲得回数32007/03/11 02:51:09

ポイント23pt

<?php
$u = parse_url("http://example.com/sample.php?kw=hoge&p=hoge2&a=hoge3&qu...);
$p = explode('&', $u['query']);
$params = array();
foreach ( $p as $v ) {
list($key, $param) = explode('=', $v);
$params[$key] = $param;
}
print $params['kw'];
var_dump($params);
?>

普通にやるとこんな感じでしょうか。

parse_url() で QUERY_STRING を抜き出して、それを順にバラしていって連想配列にするコードです。

フリーで配布しているアクセス解析プログラムが参考になるんじゃないでしょうか。

id:nandedarou No.3

nandedarou回答回数230ベストアンサー獲得回数342007/03/11 02:56:47

ポイント22pt

http://au3.php.net/manual/ja/function.mb-parse-str.php

$Ref = split("\?",$_SERVER["HTTP_REFERER"]);

// $Qに連想配列として格納されます
mb_parse_str($Ref[1], $Q);

// 表示
print_r( $Q );

いかがでしょうか?

id:nandedarou No.4

nandedarou回答回数230ベストアンサー獲得回数342007/03/11 04:56:37

ポイント22pt

もろ、お探しの方法だと思います。

ちょっと説明が足りなかったかもしれませんので、詳しく解説します。もし、疑問があれば、コメント下さい。さらに、詳しく解説します。

// リファラを?で分けて、配列$Refに保存
// $Ref[0]は、?より前、
// $Ref[1]が、?より後(つまり、クエリ文字列)
$Ref = split("\?",$_SERVER["HTTP_REFERER"]);

// mb_parse_strは、もろ、クエリ文字列を分析する為の関数です。
// $Qに連想配列として格納されます
mb_parse_str($Ref[1], $Q);

// 連想配列を表示する
// 次のように表示されます。
// kwはhoge
// pはhoge2
// aはhoge3
foreach( $Q as $key => $value ){
  print( $key . "は、" . $value . "<br />" );
}

http://au3.php.net/manual/ja/function.mb-parse-str.php

id:kamesann

おお、すばらしい、詳しくありがとうございます。

mb_parse_str使用させていただきます。

これで効率良く組めそうです

2007/03/11 12:02:28

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません