2012-03-20 19 views
0

私はいくつかのJavaScriptからウェブサイトにアクセスするために使用されるキーワードを収集し、データベースに保存するPHPコードをいくつか持っています。たとえば、キーワードがexampleの場合、それはexamplを取得します。参照キーワードの最後の文字がありません

//Get keywords from reffering website 
function getReferalHost() 
{ 
$ref = parse_url($_GET['self']); 
$refer = $ref['host']; 
return $refer; 
} 

function getKeywords() 
{ 
$refer = str_replace('%2520' , '+' , urlencode($_SERVER['REQUEST_URI'])); 
$refer = str_replace('%26' , '&', $refer); 
$refer = str_replace('%3D' , '=', $refer); 
$host_ref = parse_url($_GET['self']); 
$host = $host_ref['host']; 

if(stristr($host,'google.')) 
{ 
    //do google stuff 
    $match = preg_match('/&q=([a-zA-Z0-9+-]+)/',$refer, $output); 
    $querystring = $output[0]; 
    $rep = str_replace('&q=','',$querystring); 
    $querystring = substr($rep , 0 , (strlen($rep) - 1)); 
    $keywords = explode('+',$querystring); 
    return $keywords; 
} 
elseif(stristr($host,'yahoo.')) 
{ 
    //do yahoo stuff 
    $match = preg_match('/p=([a-zA-Z0-9+-]+)/',$refer, $output); 
    $querystring = $output[0]; 
    $rep = str_replace('p=','',$querystring); 
    $querystring = substr($rep , 0 , (strlen($rep) - 1)); 
    $keywords = explode('+',$querystring); 
    return $keywords; 

} 
elseif(stristr($host,'msn.') or stristr($host,'bing.') or stristr($host, 'ask.com')) 
{ 
    //do msn stuff 
    $match = preg_match('/q=([a-zA-Z0-9+-]+)/',$refer, $output); 
    $querystring = $output[0]; 
    $rep = str_replace('q=','',$querystring); 
    $querystring = substr($rep , 0 , (strlen($rep) - 1)); 
    $keywords = explode('+',$querystring); 
    return $keywords; 
} 

} 

define('DELIMITER' , ' '); 
        $request_uri = getReferalHost(); 
        $keys = getKeywords(); 
        $query_string = ""; 
        foreach($keys as $key){ 
        $query_string .= $key.DELIMITER; 
        } 

どのような提案も大歓迎です。

おかげ

リー

答えて

0

あなたが持っている:すべてのケースで

$querystring = substr($rep , 0 , (strlen($rep) - 1)); 

、あなたはその行を削除しようとしたがありますか?変更、そして、このライン

$querystring = substr($rep , 0 , (strlen($rep) - 1)); 

$keywords = explode('+',$querystring); 

へ:

+0

おかげで、私はそれが –

+0

は、[OK]を私が持っていたと考えてみてください与えますそれは私に最後の手紙を返しましたが、それはまた、変数のいくつかをデータベーステーブルにダンプすることでした:q = Youth –

+0

行を削除した場合、 '$ keywords = explode( '+'、$ querystring);を' $ keywords = explode( '+'、$ rep); '@MrCodeに変更する必要があります –

0

この行を削除し

$keywords = explode('+',$rep); 
関連する問題