value 값이 짤려 나오는 것은 라라벨 입장에서는 aa=aa 앞에 있는 &가 test.com 의 & 인지 naver.com 의 & 인지 구분할 수 없기 때문입니다.
songc 님 말씀처럼 직접 처리하는 수 밖에 없는 것 같습니다.
예를 들어주신 URL 구조의 경우 아래와 같이 하면
"http://test.com/test?q=test&url=http://www.naver.com?dd=dd&aa=aa"를 입력시
"http://www.naver.com?dd=dd&aa=aa&bb=bb" 를 얻을 수 있습니다.
Route::get('/test', function(Request $request){ // 입력값 중 url 파라미터 이외의 파라미터를 제외하고 받아옵니다. $inputs = $request->except('q'); // & 를 기준으로 구분된 파라미터 값들을 다시 원래의 url 형태로 만듭니다. $url = ''; foreach($inputs as $key=>$value) { if($url != '') { $url .= "&{$key}="; } $url .= $value; } dd($url); });
아 이런방법이 있군요. 제가 하려고 하는 방향대로 할 수 있을 거 같습니다.
감사합니다.
url 쿼리파라미터에 들어가는 값들을 urlencode 로 한번 걸러주시면 될것 같아요~
프로그램 단에서 먼저 urlencode 시켜, 주소창에 붙여넣는 방법밖엔 없을 것 같네요.
art tinker
Psy Shell v0.6.1 (PHP 7.0.14 ??cli) by Justin Hileman
>>> urlencode('http://www.naver.com?dd=dd&aa=aa')
=> "http%3A%2F%2Fwww.naver.com%3Fdd%3Ddd%26aa%3Daa"
주소 입력) http://test.com/test?q=test&url=http%3A%2F%2Fwww.naver.com%3Fdd%3Ddd%26aa%3Daa
urlencode 개념이없는 일반 사용자가 바로 주소창에서 입력해야 하는 과정이라
안타깝게 urlencode는 안됩니다 ㅜㅜ 정녕 방법이없는걸까요 흙
음 그럼 어쩔수 없이 쿼리스트링을 포함해서 url 파라메터만 따로 분석하셔야 될것 같네요
// With Query String... $url = $request->fullUrl();
웹브라우저 주소창에서 다음 코드에서 나온것처럼 입력 할 경우
getIndex 함수에서 url 쿼리파라미터를 받아오려고보면 value값이 제대로 들어오지 못하고 짤려서 들어오더라구요 혹시 쿼리파라미터에 url 을 입력 하여 제대로된 값을 받아올수 없을까요?
p.s. url encode 같은건 쓸수없습니다. 주소창에 직접입력하여 api 호출하는거라서요