매일 개발에서는 종종 인터페이스 개발, 웹 페이지 점프 또는 링크 해상도를 수행 할 때 URL의 매개 변수를 처리해야합니다. PHP 언어를 사용하는 경우 두 기능 Parse_url 과 Parse_str는 URL을 처리하는 무기가됩니다.
이 기사에서는 parse_url 함수를 사용하여 URL에서 쿼리 부분을 추출한 다음 Parse_str 함수를 통해 PHP 배열로 변환하여 각 매개 변수 값에 쉽게 액세스하는 방법을 보여줍니다.
parse_url은 URL을 구문 분석하여 다음을 포함하여 구성 요소로 분리 할 수있는 PHP의 내장 기능 중 하나입니다.
체계 (프로토콜)
호스트 (호스트 이름)
포트 (포트)
사용자 (사용자 이름)
패스 (비밀번호)
경로 (경로)
쿼리 (쿼리 문자열)
조각 (앵커 포인트)
예:
$url = "https://gitbox.net/search?q=php&sort=desc&page=2";
$parsed = parse_url($url);
print_r($parsed);
출력 결과 :
Array
(
[scheme] => https
[host] => gitbox.net
[path] => /search
[query] => q=php&sort=desc&page=2
)
보시 다시피 Parse_url은 URL에서 쿼리 부분을 성공적으로 추출합니다. Q = PHP & SORT = DESC & PAGE = 2 . 그러나 이것은 여전히 끈입니다. 접근 가능한 배열이 되려면 다른 함수 인 parse_str를 사용해야합니다.
parse_str 는 또한 PHP의 내장 기능으로 URL의 쿼리 문자열을 연관 배열로 구문 분석 할 수 있습니다.
예:
$queryString = "q=php&sort=desc&page=2";
parse_str($queryString, $queryArray);
print_r($queryArray);
출력 결과 :
Array
(
[q] => php
[sort] => desc
[page] => 2
)
각 매개 변수는 배열 요소가되었으므로 $ QueryArray [ 'Q'] 또는 2 ~ $ QueryArray [ 'Page'] 를 통해 쉽게 PHP를 얻을 수 있습니다.
두 기능을 함께 사용하면 최소한의 방식으로 모든 URL로 쿼리 매개 변수 배열을 얻을 수 있습니다.
$url = "https://gitbox.net/search?q=php&sort=desc&page=2";
// 첫 번째 단계:사용 parse_url 얻다 query 부분
$parsedUrl = parse_url($url);
$queryString = isset($parsedUrl['query']) ? $parsedUrl['query'] : '';
// 2 단계:사용 parse_str 할 것이다 query 문자열을 배열로 변환합니다
$queryParams = [];
parse_str($queryString, $queryParams);
// 출력보기
print_r($queryParams);
이러한 방식으로 URL에 얼마나 많은 매개 변수가 포함되어 있더라도 $ QueryParams 배열을 통해 쉽게 액세스 할 수 있습니다.
실제 시나리오에서는 URL에 쿼리 매개 변수가 전혀없는 경우에도 결함 공차를 수행해야합니다.
$url = "https://gitbox.net/home";
$parsedUrl = parse_url($url);
$queryParams = [];
if (isset($parsedUrl['query'])) {
parse_str($parsedUrl['query'], $queryParams);
}
print_r($queryParams); // 출력은 빈 배열입니다