HOWTO · PHP

PHP에서 현재 전체 URL 가져 오기

이 튜토리얼은 PHP에서 현재 URL을 얻는 방법을 소개합니다.

튜토리얼에서는 PHP 프로그래밍 언어로 현재 전체 URL을 얻는 방법을 소개합니다. PHP의 전체 URL을 얻기위한 많은 사용 사례가있을 수 있습니다. 쿼리 매개 변수를 기반으로 웹 페이지의 콘텐츠를 렌더링해야합니다. 페이지 전체를 리디렉션하거나 새로 고쳐야 할 수 있습니다. 따라서 전체 URL은 웹 프로그래밍에있어 필수적인 가치가 될 수 있습니다.

여기서는 PHP 프로그래밍에서 전체 URL을 얻는 다양한 방법에 대해 설명합니다.

일반적으로 현재 실행중인 페이지의 전체 URL을 가져 오기 위해 알아야 할 몇 가지 단계가 있으며, 아래에 나와 있습니다.

  • URL을 문자열 형식으로 저장할 PHP 변수를 만들어야합니다.
  • 서버에 HTTPS가 활성화되어 있는지 확인해야합니다. 그렇다면 URL 문자열에 HTTPS를 추가해야합니다. HTTPS가 활성화되지 않은 경우 URL 문자열에 HTTP를 추가해야합니다.
  • URL에 ‘: //‘기호도 추가해야합니다.
  • 서버의 HTTP_HOST 이름을 추가해야합니다. HTTP_HOST 이름은 요청한 호스트입니다. www.google.com,www.exampledomain.com
  • URL 문자열에 REQUEST_URI를 추가해야합니다. REQUEST_URI는 우리가 요청한 리소스입니다. /index.php

이제 PHP 프로그래밍 생태계에서 현재 전체 URL을 얻는 가장 효율적인 방법에 대해 논의합니다.

http_build_url()을 사용하여 PHP에서 현재 URL 가져 오기

이 솔루션은 매우 간단합니다. http_build_url()이라는 이름의 PHP 내장 함수를 사용할 수 있습니다. 이 방법은 HTTP와 HTTP 모두에서 작동합니다.

$link =  http_build_url();

이 함수는 URL을 작성하는 데 사용됩니다. 4 개의 매개 변수를 모두 허용합니다.

  • url :이 매개 변수는 문자열 또는 연관 배열의 형식으로 URL을 나타냅니다. parse_url()와 유사한 값을 반환합니다.
  • parts :이 매개 변수는 첫 번째 인수와 동일합니다.
  • flags : 바이너리 HTTP_URL 상수의 비트 마스크입니다.
  • new_url :이 매개 변수를 설정하면 구성된 URL의 parse_url() 부분으로 채워집니다.

전반적으로이 메소드는 성공시 문자열로 새 URL을 반환하고 실패시 False를 반환합니다.

$_SERVER[]를 사용하여 PHP에서 현재 URL 가져 오기

또 다른 방법은$_SERVER[]라는 전역 변수를 사용하는 것입니다. $_SERVER는 현재 페이지 URL을 가져 오는 데 사용되는 PHP의 기본 제공 변수입니다. 또한 슈퍼 글로벌 변수입니다. 따라서 항상 모든 범위에서 사용할 수 있습니다.

아래 예와 같이 매개 변수REQUEST_URI를 변수에 전달하기 만하면됩니다.

예:

$link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
  • $_SERVER[HTTP_HOST]https://www.delftstack.com/과 같은 호스트 이름 또는 도메인 이름을 나타냅니다.
  • $_SERVER[REQUEST_URI] represent URI like /dashboard/phpinfo.php

$_SERVER['HTTPS']를 사용하여 PHP에서 현재 URL 가져 오기

다음은 PHP에서 현재 URL을 가져 오는 또 다른 명시 적 하드 코드 형식입니다.

전역 변수$_SERVER['HTTPS']는 HTTPS의 상태를 나타냅니다. 따라서isset()함수 내에서 사용하여 HTTPS가 있는지 여부를 확인할 수 있습니다. 이렇게하면 URL에서 HTTPS가 활성화되었는지 여부를 알 수 있습니다. 한편$_SERVER['HTTPS']의 값을 확인하여 URL에 https를 추가할지 여부를 결정할 수 있습니다.

두 예 모두 HTTPS 감지를 보여줍니다. 아래 예는 긴 형식입니다.

$link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

또는 아래 예와 같이 짧은 형식을 사용할 수 있습니다.

$link = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']

PHP에서 매개 변수를 포함하는 현재 URL 가져 오기

경로, 매개 변수, 쿼리 문자열을 포함한 전체 URL을 가져 오려면 아래 예와 같이 http_build_url()을 사용할 수 있습니다.

$all_in_address_bar = http_build_url();

결론

이 튜토리얼은 PHP 프로그래밍에서 현재 URL을 얻는 가장 효율적인 방법을 보여주었습니다. 예제는 사용 된 형식, 메커니즘 및 구문을 이해하는 데 확실히 도움이 될 것입니다. 현재 URL을 가져 오는 데 가장 많이 사용되는 기술은 수퍼 글로벌 변수 $_SERVER를 사용하는 것입니다. 이를 사용하여 구문 형식을 완전히 제어 할 수 있습니다. 그러나이 기술은 다른 기술에 비해 약간 복잡합니다. 이제 PHP 프로그래밍 시나리오에 따라 현재 URL을 얻는 방법이 가장 적합한 방법을 결정하는 것은 사용자에게 달려 있습니다. 특정 사용 사례와 효율성이 다를 수 있습니다. 가장 좋은 방법은 각각을 시도하고 프로그래밍 시나리오에 가장 유연하고 효율적인 방법을 사용하는 것입니다.