URLs urlencode

(PHP 4, PHP 5, PHP 7, PHP 8)

urlencode — URL 인코딩 문자열


설명

urlencode(string $string): string

이 함수는 URL의 쿼리 부분에 사용할 문자열을 인코딩할 때 다음 페이지로 변수를 전달하는 편리한 방법으로 편리합니다.


매개변수

string
인코딩할 문자열입니다.

반환 값

-_.를 제외한 모든 영숫자가 아닌 문자가 포함된 문자열을 반환합니다. 퍼센트(%) 기호 다음에 두 개의 16진수와 더하기(+) 기호로 인코딩된 공백으로 대체되었습니다. WWW 양식에서 게시된 데이터가 인코딩되는 것과 동일한 방식으로 인코딩됩니다. 즉, application/x-www-form-urlencoded 미디어 유형과 동일한 방식입니다. 이는 역사적 이유로 공백이 더하기(+) 기호로 인코딩된다는 점에서 » RFC 3986 인코딩(rawurlencode() 참조)과 다릅니다.


Examples

예제 #1 urlencode() 예제

                  
<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>
                  
                

예제 #2 urlencode() 및 htmlentities() 예제

                  
<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>
                  
                

메모

메모:

HTML 엔티티와 일치할 수 있는 변수에 주의하십시오. &, © 및 £와 같은 항목은 브라우저에서 구문 분석되며 원하는 변수 이름 대신 실제 엔티티가 사용됩니다. 이것은 W3C가 수년 동안 사람들에게 말해 온 명백한 번거로움입니다. 참조: » http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2.

PHP는 arg_separator .ini 지시문을 통해 인수 구분 기호를 W3C에서 제안한 세미콜론으로 변경하는 것을 지원합니다. 불행히도 대부분의 사용자 에이전트는 이 세미콜론으로 구분된 형식으로 양식 데이터를 보내지 않습니다. 이 문제를 해결하는 더 이식 가능한 방법은 & 대신 &를 구분 기호로 사용하는 것입니다. 이를 위해 PHP의 arg_separator를 변경할 필요가 없습니다. &로 남겨두되 htmlentities() 또는 htmlspecialchars()를 사용하여 URL을 인코딩하기만 하면 됩니다.


기타