PHP의 URL 인코딩

Shraddha Paghdar 2023년1월30일
  1. urlencode()를 사용하여 PHP에서 URL 인코딩
  2. rawurlencode()를 사용하여 PHP에서 URL 인코딩
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 Paghdar avatar Shraddha Paghdar avatar

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