2009-09-22 2 views
1

내 페이지를 찾는 데 사용 된 쿼리를 사용하고 싶습니다. 참조 페이지의 URL에 있습니다. $ GET _ [ 'q'] (그리고 yahoo $ GET_ [ '피']). 어떻게 사용할 수 있습니까? 나는 $ query = REFERRING PAGE ($ GET _ [ 'q'])와 같은 것을 원하지만, 말할 방법이 없다.추천 검색 엔진에서 쿼리 정보를 얻을 수있는 방법

당신이 찾고있는 정보가이 URL이있는 페이지에서 오는, 예를 들어 $_SERVER['HTTP_REFERER']

에서 사용할 수

답변

5

: http://tests/temp/temp-2.php?q=test+glop, 코드의이 부분 :

var_dump($_SERVER['HTTP_REFERER']); 

을 제공합니다 :

string 'http://tests/temp/temp-2.php?q=test+glop' (length=40) 


parse_url을 사용하면 해당 U에서 쿼리 문자열을 가져올 수 있습니다. RL :

$query = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY); 
var_dump($query); 

당신을 얻을 것이다 :

string 'q=test+glop' (length=11) 
이제


, 당신은 parse_str하여 해당 쿼리 문자열을 구문 분석 할 수 있습니다; 이 코드 :

$params = array(); 
parse_str($query, $params); 
var_dump($params); 

당신이 얻을 것이다

array 
    'q' => string 'test glop' (length=9) 


그리고 마지막으로, 당신이 관심있는 매개 변수가 배열인지 여부를 확인할 수 있습니다 것은 :

if (isset($params['q'])) { 
    var_dump($params['q']); 
} 

줄 것이다 이 예의 경우,

string 'test glop' (length=9) 


잇 짜잔 ;-)

는 그냥 Referer 의미 클라이언트에 의해 전송됩니다 참고 :이 위조 될 수

  • 을, 아무것도 포함 할 수 있습니다 - 나쁜 물건 포함 (SQL 인젝션 및 XSS를주의하십시오!)
  • 브라우저는 전송할 필요가 없습니다.
+0

+1 : 우수 답변. 네, HTTP의 맥락에서 정말로 "referer"이라고 쓰여져 있습니다. 8-) – RichieHindle

+0

고마워! Ergh, 당신의 코멘트를 읽으면서, 나는 처음에 "오, 내가 그것을 잘못 말 했나요?" ^^ 우리 일상 업무에서 또 하나 재미있는 일이 있습니다 ^^ –

+0

나는 따라하지 않을까 걱정됩니다. 내가 말하는 경우 : $ query = $ _SERVER [ 'HTTP_REFERER']; 다음은 $ query = 전체 Google 주소입니다. 내가 말하는 경우 : $ query = parse_url ($ _ SERVER [ 'HTTP_REFERER'], PHP_URL_QUERY); var_dump ($ query); $ query에 값이 없습니다. var_dumps를 포함해야합니까, 아니면 교육용으로 사용해야하나요? –

관련 문제