PHP에서 전체 URL 검색

Retrieve Full Url Php



PHP에서는 두 가지 유형의 전역 변수를 사용할 수 있습니다. 슈퍼 전역 변수와 사용자 정의 변수입니다. $_SERVER 현재 페이지의 전체 경로를 검색하는 데 사용되는 슈퍼글로벌 배열 변수입니다. 페이지의 전체 URL을 가져오려면 URL의 프로토콜(HTTP 또는 HTTPS)도 필요합니다. 만약에 $_SERVER['HTTPS'] 보고 '에', HTTPS는 URL 주소와 함께 사용됩니다. 그렇지 않으면 HTTP 으로 사용될 것. 다음을 사용하여 현재 페이지의 전체 URL 주소를 검색하는 방법 $_SERVER 배열은 이 튜토리얼에서 설명되었습니다.

필요한 변수

현재 페이지의 URL 주소를 찾기 위해서는 다음과 같은 슈퍼글로벌 변수가 필요합니다.







초전역 변수 목적
$_SERVER['HTTPS'] 그것은 반환 ~에 현재 페이지의 URL에서 HTTPS 프로토콜이 사용되는 경우.
$_SERVER['HTTP_HOST'] 현재 페이지의 서버 이름을 반환합니다.
$_SERVER['REQUEST_URI'] 요청한 리소스 이름을 반환합니다.
$_SERVER['SERVER_PORT'] 서버의 포트 번호를 반환합니다.
$_SERVER['QUERY_STRING'] 현재 페이지의 URL 주소에 쿼리 문자열 값이 있으면 반환합니다.

예 1: 조건문을 사용하여 현재 페이지의 URL 표시

다음 예제는 조건문을 사용하여 현재 페이지의 URL에 사용된 프로토콜을 가져오는 방법을 보여줍니다. 다음 스크립트를 사용하여 PHP 파일을 만듭니다.

$_SERVER['HTTP_HOST'] 값은 현재 URL의 도메인 이름을 가져오는 데 사용됩니다. $_SERVER['REQUEST_URI'] 값은 요청된 리소스의 이름을 가져오는 데 사용됩니다. 다 쓴) 함수는 $_SERVER['HTTPS']가 집합인지 아닌지를 확인하기 위해 사용되며, 설정되어 있다면 $_SERVER['HTTPS']의 값이 집합인지 확인합니다. ~에 아니면. 다음으로 이 세 변수의 값을 '//:'와 결합하여 현재 페이지의 전체 URL을 검색합니다.


// 현재 페이지의 도메인 이름 읽기
$도메인 = $_SERVER['HTTP_HOST'];
//요청된 리소스 읽기
$리소스 = $_SERVER['REQUEST_URI'];
// 현재 URL의 프로토콜을 찾습니다.
만약( 다 쓴 ($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === '에')
$프로토콜 = 'https';
또 다른
$프로토콜 = 'http';

// 전체 URL 주소를 얻기 위해 모든 부분을 결합합니다.
$url = $프로토콜.': //'.$도메인.$리소스;
// 현재 페이지의 URL 주소를 출력
던졌다 '

현재 URL 주소
페이지는 다음과 같습니다.

'
. $url;?>

산출:

서버에서 스크립트를 실행하면 다음 출력이 나타납니다. $_SERVER['HTTPS'] 값이 아닙니다. ~에 로컬 서버용. 그래서 출력은 http 현재 URL에 대한 프로토콜입니다.

예 2: 삼항 연산자를 사용하여 현재 페이지의 URL 표시

다음 예제는 삼항 연산자를 사용하여 현재 페이지의 전체 URL을 가져오는 방법을 보여줍니다. 다음 스크립트를 사용하여 PHP 파일을 만듭니다.

만약에 조건은 이전 예제에서 현재 페이지의 URL에서 사용되는 프로토콜을 찾는 데 사용됩니다. 이 스크립트에서 삼항 연산자를 사용하여 동일한 작업이 수행됩니다. 다 쓴) 함수는 $_SERVER['HTTPS']가 집합인지 확인하는 데 사용되며 $_SERVER['HTTPS'] 값이 에, 삼항 연산자는 HTTPS를 반환하고, 그렇지 않으면 HTTP를 반환합니다. URL의 다른 부분은 이전 예와 같이 검색되고 인쇄됩니다.


// 현재 URL의 프로토콜을 찾습니다.
$프로토콜 = ( 다 쓴 ($_SERVER['HTTPS']) && $_SERVER['HTTPS']
== '에'?'https' : 'http');
// 현재 페이지의 도메인 이름 읽기
$도메인 = $_SERVER['HTTP_HOST'];
//요청된 리소스 읽기
$리소스 = $_SERVER['REQUEST_URI'];
// 전체 URL 주소를 얻기 위해 모든 부분을 결합합니다.
$url = $프로토콜.': //'.$도메인.$리소스;
// 현재 페이지의 URL 주소를 출력
던졌다 '

현재 페이지의 URL 주소는 다음과 같습니다.

'
. $url;
?>

산출:

서버에서 스크립트를 실행하면 다음 출력이 나타납니다. $_SERVER['HTTPS'] 값이 아닙니다. ~에 로컬 서버용. 따라서 출력에는 현재 URL에 대한 HTTP 프로토콜이 표시됩니다.

예 3: 포트 번호를 기반으로 현재 페이지의 URL 표시

앞의 두 예에서 $_SERVER['HTTPS'] 값은 페이지의 현재 URL 프로토콜을 찾는 데 사용되며 쿼리 문자열은 URL에 사용되지 않습니다. 다음 예는 $_SERVER['SERVER_PORT'] 변수를 사용하여 프로토콜을 찾고 쿼리 문자열로 전체 URL 주소를 검색하는 방법을 보여줍니다. 다음 스크립트를 사용하여 PHP 파일을 만듭니다.

여기에서 다중 논리 조건과 삼항 연산자를 사용하여 프로토콜을 찾습니다. $_SERVER['HTTPS'] 값이 비어 있거나 다음으로 설정된 경우 끄다, 그런 다음 $_SERVER['SERVER_PORT'] 값을 확인하여 현재 URL의 프로토콜을 찾습니다. $_SERVER['QUERY_STRING'] 변수는 URL에서 쿼리 문자열 값을 검색하는 데 사용됩니다.


// 현재 URL의 프로토콜을 찾습니다.
$프로토콜 = ((! 비어있는 ($_SERVER['HTTPS']) && $_SERVER['HTTPS']
! = '끄다') || $_SERVER['서버 포트'] == 443)?'https: //' : 'http: //';
// 현재 페이지의 도메인 이름 읽기
$도메인 = $_SERVER['HTTP_HOST'];
// 요청된 리소스 읽기
$리소스 = $_SERVER['REQUEST_URI'];
// 쿼리 문자열 값 읽기
$쿼리 = $_SERVER['QUERY_STRING'];
// 전체 URL 주소를 얻기 위해 모든 부분을 결합합니다.
$url = $프로토콜.$도메인.$리소스;
// 현재 페이지의 URL 주소를 출력
던졌다 '

현재 페이지의 전체 URL 주소는 다음과 같습니다.

'
. $url;
// 쿼리 문자열 부분 인쇄
던졌다 '

쿼리 문자열은 다음과 같습니다.

'
. $쿼리;
?>

산출:

쿼리 문자열 없이 서버에서 위의 스크립트를 실행하면 다음 출력이 나타납니다. URL에 쿼리 문자열이 제공되지 않았습니다. 따라서 출력에는 빈 쿼리 문자열이 표시됩니다.

쿼리 문자열로 서버에서 위의 스크립트를 실행하면 다음 출력이 나타납니다. 다음 출력은 쿼리 문자열과 쿼리 문자열이 별도로 있는 URL 주소를 보여줍니다.

결론

이 튜토리얼에서는 다양한 예제를 사용하여 현재 페이지의 전체 URL을 검색하는 다양한 방법을 보여줍니다. URL과 쿼리 문자열을 분리하는 방법도 이 자습서에 나와 있습니다. 이 튜토리얼이 독자들이 PHP 스크립트를 사용하여 현재 페이지의 전체 URL을 읽는 방법을 아는 데 도움이 되기를 바랍니다.