2011-02-11 3 views
3

URL을 매개 변수 중 하나로 사용하는 PHP 스크립트 http://site.com/process.php을 호출합니다. for=매개 변수 중 하나가 URL 일 때 parse_url() 문제가 발생했습니다.

http://site.com/process.php?for=http://www.anotherwebsite.com 

그때 나는이 작업을 수행하고 구문 분석 오류를 준다) parse_url()하지만 parse_url (시도.

$uri = $_SERVER['REQUEST_URI']; // /process.php?for=http://www.anotherwebsite.com 
parse_url($uri); 

내가 인코딩 할 수 어떻게 for 매개 변수 중 하나 있도록 parse_url() 그것이 URL을 같이하는 일이 단지 매개 변수의 것을 이해 (URL에) 또는 수신 측 (PHP)에 송신 측에?

+0

쿼리 문자열 값을 URL 인코딩해야합니다. – BoltClock

+0

'$ _GET ['에 대한 '당신에게주는 무엇입니까? 관심있는 'for'매개 변수입니까? –

답변

2

글쎄, 먼저 당신이 단순히 기능은 다음

$url = $_GET["for"]; 
$url = urldecode($url); // http://www.anotherwebsite.com 

을 할 수 process.php에 다음의 for= 매개 변수를 urlencode()해야합니다 http://php.net/manual/en/function.urlencode.php http://php.net/manual/en/function .urldecode.php

+0

urldecode()가 유용하지 않다고 생각합니다. OP는 $ _GET [ "url"]에서 parse_url()을 사용해야 할 수도 있습니다. – mario

+0

글쎄, 그것은 나를 위해 작동합니다 : $ url = urlencode ("http://www.example.com"); // http % 3A % 2F % 2Fwww.example.com print urldecode ($ url); // http://www.example.com –

3

get 매개 변수로 URL을 포함하기 전에, 편리한과 같은 문자열을 인코딩 는 URL의 쿼리 부분에 사용하는 경우 urlencode

$full_url = 'http://site.com/process.php?for=' . urlencode('http://www.anotherwebsite.com'); 

이 기능은 편리한 사용 변수를 다음 페이지로 전달하는 방법.


urldecode를 사용 urlencode의 결과를 반대로합니다. 아래의 코멘트에서 mario가 지적했듯이 $_GET 매개 변수는 이미 urldecoded되어 있습니다.

+0

새로운 일상을 배우십시오, thanks @mario :) 귀하의 정보를 바탕으로 제 대답을 편집했습니다. –

관련 문제