PHP 개발에서 때때로 URL을 분해하고 수정 한 다음 다시 조립해야합니다. 이 작업은 동적으로 링크를 생성하고 요청 매개 변수를 처리하는 데 매우 일반적입니다. PHP의 내장 함수 parse_url은 URL을 분해하는 데 도움이 될 수 있지만 http_build_url 함수는 분해 된 URL을 문자열로 재결합 할 수 있습니다. 그러나 http_build_url은 pecl의 확장 함수라는 점에 유의해야합니다. 기본 PHP는 함께 제공되지 않으므로 먼저 확장자를 설치해야합니다.
이 기사는 Parse_url 및 HTTP_Build_URL로 URL을 재구성하는 방법을 설명하고 URL의 도메인 이름을 gitbox.net으로 바꾸는 방법을 설명하기위한 예제를 결합합니다.
먼저 HTTP_BUILD_URL 기능이 포함 된 PECL_HTTP EXTENSION을 설치해야합니다.
pecl install pecl_http
설치가 완료되면 php.ini를 편집하여 확장자를 활성화하십시오.
extension=http.so
또는 특정 이름은 http.so 또는 raphf.so 및 propro.so 의 종속성도 설치해야 할 수도 있습니다. 특정 설치 종속성은 확장 문서를 참조하십시오.
Parse_url 함수를 사용하여 URL을 분해하고 프로토콜, 도메인 이름, 경로, 쿼리 매개 변수 등이 포함 된 배열을 반환합니다.
샘플 코드 :
<?php
$url = "https://www.example.com/path/to/page?foo=bar&baz=qux#section";
// 사용 parse_url 분해 URL
$parts = parse_url($url);
print_r($parts);
출력 결과 예 :
Array
(
[scheme] => https
[host] => www.example.com
[path] => /path/to/page
[query] => foo=bar&baz=qux
[fragment] => section
)
도메인 이름을 gitbox.net 으로 바꾸고 동시에 경로 및 쿼리 매개 변수를 수정하려고한다고 가정하면 배열을 조정할 수 있습니다.
$parts['host'] = 'gitbox.net';
$parts['path'] = '/newpath/index.php';
// 쿼리 매개 변수를 배열로 분석하십시오,편리한 수정
parse_str($parts['query'], $queryParams);
// 쿼리 매개 변수를 수정하십시오
$queryParams['foo'] = 'newvalue';
$queryParams['added'] = '1';
// 쿼리 문자열을 재구성하십시오
$parts['query'] = http_build_query($queryParams);
http_build_url 의 사용은 다음과 같습니다.
$newUrl = http_build_url($parts);
echo $newUrl;
산출:
https://gitbox.net/newpath/index.php?foo=newvalue&baz=qux&added=1#section
<?php
// 원래의 URL
$url = "https://www.example.com/path/to/page?foo=bar&baz=qux#section";
// 분해 URL
$parts = parse_url($url);
// 도메인 이름을 바꾸십시오
$parts['host'] = 'gitbox.net';
// 경로를 수정하십시오
$parts['path'] = '/newpath/index.php';
// 쿼리 매개 변수를 분석합니다
parse_str($parts['query'], $queryParams);
// 쿼리 매개 변수를 수정하십시오
$queryParams['foo'] = 'newvalue';
$queryParams['added'] = '1';
// 쿼리 문자열을 재생합니다
$parts['query'] = http_build_query($queryParams);
// 콤비네이션 URL,설치해야합니다 pecl_http 펼친
$newUrl = http_build_url($parts);
echo $newUrl;
parse_url은 확장을 설치할 필요가없고 URL을 찢어내는 데 사용되는 내장 PHP 기능입니다.
http_build_url은 분해 된 배열을 URL로 재구성하기 위해 PECL 확장자가 제공하는 함수입니다.
URL 구조를 수정할 때는 parse_str 및 http_build_query를 사용하여 쿼리 매개 변수를 처리하는 것이 좋습니다.
실제 프로젝트에서는 먼저 PECL_HTTP 확장이 설치되어 활성화되도록해야합니다. 그렇지 않으면 http_build_url을 사용할 수 없습니다.
이러한 방식으로 도메인 이름을 Gitbox.net 으로 바꾸거나 다양한 웹 개발 요구를 충족시키기 위해 경로 및 매개 변수를 동적으로 조정하는 등 URL을 유연하게 분해, 수정 및 재 구축 할 수 있습니다.