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을 인코딩하기만 하면 됩니다.
기타
- urldecode() - URL 인코딩된 문자열 디코딩
- htmlentities() - 적용 가능한 모든 문자를 HTML 엔터티로 변환
- rawurlencode() - RFC 3986에 따른 URL 인코딩
- rawurldecode() - URL 인코딩 문자열 디코딩
- » RFC 3986