PHP의 URL 인코딩
URL에는 다른 사람의 전체 이름, 다른 리디렉션 URL 또는 비밀번호와 같은 경로 및 쿼리 매개변수가 있을 수 있습니다. 여기에는 공백이나 $ & : /
와 같은 문자와 같은 ASCII 세트 외부의 특수 문자가 포함될 수 있습니다.
따라서 URL은 인터넷을 통해 전송되기 전에 합법적인 ASCII 형식으로 다시 생성되어야 합니다. 그렇지 않으면 HTTP 프로토콜을 방해할 수 있습니다.
오늘 포스트에서는 PHP에서 URL을 인코딩하는 방법에 대해 알아보겠습니다.
PHP는 URL을 인코딩하는 2가지 기능을 제공합니다.
urlencode()
를 사용하여 PHP에서 URL 인코딩
URL을 인코딩하는 데 사용되는 PHP에서 제공하는 내장 함수입니다. 이 함수는 안전하지 않은 ASCII 문자를 %
다음에 2개의 16진수 숫자로 대체합니다. 이 기능은 application/x-www-form-urlencoded
에 따라 인코딩합니다. URL은 공백을 포함할 수 없으므로 이 기능은 공백을 더하기 +
기호로 대체합니다. 특수 문자는 미리 정의된 일부 규칙에 따라 매우 구체적인 형식으로 재생성됩니다.
urlencode()
구문
urlencode(string $input);
매개변수
$input
: 인코딩이 수행되는 문자열 입력 URL만 사용하는 필수 매개변수입니다.
반환 값
-_.
를 제외하고 영숫자가 아닌 모든 문자를 포함하는 문자열을 반환합니다. 이 문자는 %
기호로 대체되고 2개의 16진수가 뒤따릅니다.
예제 코드:
<?php
echo urlencode("https://www.google.co.in/") . "\n";
echo urlencode("https://www.google.com/") . "\n";
?>
출력:
https%3A%2F%2Fwww.google.co.in%2F
https%3A%2F%2Fwww.google.com%2F
rawurlencode()
를 사용하여 PHP에서 URL 인코딩
RFC 3986에 따라 주어진 URL(Uniform Resource Locator) 문자열을 인코딩할 수 있는 PHP에서 제공하는 내장 함수입니다. 일반 Percent-Encoding에 따라 인코딩합니다. 리터럴 문자가 특수 URL 구분 기호로 해석되는 것을 방지하고 문자 변환(일부 이메일 시스템과 같은)이 있는 전송 미디어에 의해 URL이 손상되는 것을 방지하는 데 사용됩니다.
기호 또는 공백 문자는 퍼센트(%) 기호와 2개의 16진수로 대체됩니다.
rawurlencode()
구문
rawurlencode(string $input);
매개변수
$input
: 인코딩이 수행되는 문자열 입력 URL만 취하는 필수 매개변수입니다.
반환 값
-_.~
기호를 제외한 모든 영숫자가 아닌 문자를 포함하는 인코딩된 문자열을 반환합니다.
예제 코드:
<?php
echo '<a href="http://testdomain.com/', rawurlencode('subscribers and admins/India'), '">';
?>
출력:
<a href="http://testdomain.com/subscribers%20and%20admins%2FIndia">
urlencode()
와 rawurlencode()
함수의 유일한 차이점은 먼저 공백을 +
로 인코딩하고 나중에 %20
으로 인코딩한다는 것입니다. 또한 ~
는 urlencode()
로 인코딩되지만 rawurlencode()
에서는 인코딩되지 않습니다. 쿼리 구성 요소를 인코딩하려면 urlencode()
를 사용하고 경로 세그먼트를 인코딩하려면 rawurlencode()
를 사용합니다.
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn