2017-12-14 6 views
1

A = 12 & B = 12.3.3.4 : 1233 "가 "? "가 PARAMS에php parse_url을 피하는 방법 params에 ":"가있는 "/s?a=12&b=12.3.3.4:1233"을 구문 분석 할 때 false를 반환합니까? 거짓 때 구문 분석 ''/ s의 반환 parse_url PHP를 방지하는 방법

<?php                                       
var_dump(parse_url('/s?a=12&b=12.3.3.4:1233', PHP_URL_QUERY)); 

반환

https://3v4l.org/8LKIV


: 여기

bool(false) 
온라인 실행 테스트 결과입니다

PHP에서 테스트 좋은 7.1.7

print_r(parse_url('/s?a=12&b=12.3.3.4:1233', PHP_URL_QUERY)); 

반환 좋은 상태 :

a=12&b=12.3.3.4:1233 

답변

2

가 PHP7에서 당신이 schemehost,하지만 당신은 캔트 해당 버전 아래를 남길 수 있습니다.

따라서 스키마와 호스트도 항상 포함해야합니다.

<?php 
echo 'Without scheme and host'.PHP_EOL; 
print_r(parse_url('/s?a=12&b=12.3.3.4:1233', PHP_URL_QUERY)); 

echo PHP_EOL.PHP_EOL; 

echo 'With scheme and host'.PHP_EOL; 
print_r(parse_url('http://example.com/s?a=12&b=12.3.3.4:1233', PHP_URL_QUERY)); 

출력 7.0.0에 대한 - 7.2.0

Without scheme and host 
a=12&b=12.3.3.4:1233 

With scheme and host 
a=12&b=12.3.3.4:1233 

출력 5.6.0에 대한 - 5.6.30, hhvm-3.18.5 - 3.22.0

Without scheme and host 



With scheme and host 
a=12&b=12.3.3.4:1233 

https://3v4l.org/EQhh6

+0

좋은 해결책! 그리고 부분 URL을 올바르게 구문 분석 할 수있는 방법이 있습니까? – zyfyy

+0

무엇을 의미합니까? 그냥 당신이 계획과 호스트를 가지고 있는지 확인하십시오, 가치 가짜 수 있습니다. –

+0

도메인 이름을 확인할 때이 이슈를 알게되었으므로 스키마를 추가하지 않으면 에서 이상한 일이 발생하므로 테스트하기 전에 추가합니다. –