YesYo.com MintState Forums
뒤로    YesYo.com MintState BBS > Tech > PHP
검색
멤버이름    오토
비밀번호 
 

[Function] URLEncode urldecode

페이지 정보

작성자 MintState 댓글 0건 조회 14,806회 작성일 08-11-03 11:02

본문

[Function] URLEncode urldecode

urlencode
urlencode -- 문자열을 URL 인코드합니다.
string urlencode ( string str)

-_.을 제외한 모든 영숫자가 아닌 문자를 퍼센트(%) 사인에 이어지는 두 16진수로 교체하고 공백은 플러스(+) 사인으로 교체한 문자열을 반환합니다. 이는 WWW 폼에서 인코드한 포스트 데이터, application/x-www-form-urlencoded 매체형과 같은 방식의 인코드입니다. 역사적인 이유로 공백을 플러스(+) 사인으로 인코드 하는 점이 RFC1738 인코딩(rawurlencode() 참고)과 다릅니다. 이 함수는 URL의 쿼리 부분에 사용하는 문자열을 인코딩할 때 편리합니다. 다음과 같이 다음 페이지로 변수를 전달합니다:

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

 

주의: HTML 엔티티가 들어있는 변수에는 주의를 기울이십시오. &, ©, £ 같은 것은 브라우저에 의해 파싱되어 변수명 대신에 엔티티가 사용됩니다. 이는 몇년동안 W3C가 두드러지게 이야기해온 문제입니다. 레퍼런스는 여기에 있습니다: http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2 PHP는 .ini 지시어의 arg_seperator를 통하여 W3C가 제시한 세미콜론 인수 구분자 변경을 지원합니다. 불행하게도 대부분의 유저 에이전트는 폼 데이터를 세미콜론 구분 형태로 전송하지 않습니다. 이를 해결하는 가장 현실적인 방법은 구분자로 &를 사용하는 대신 &amp;를 사용하는 것입니다. 이렇게 하면, PHP의 arg_separator를 변경할 필요가 없습니다. &로 내버려두고, 간단히 URL을 htmlentities(urlencode($data))를 사용하여 인코드하십시오.

예 2. urlencode()와 htmlentities() 예제
<?php
echo '<a href="mycgi?foo=', htmlentities(urlencode($userinput)), '">';
?>
 
 
참고: urldecode(), htmlentities(), rawurldecode(), rawurlencode().

* 특수문자 전송시 에러발생 방지

예제)
aaa.php :
<html><body>
<a href="bbb.php?data=<?echo "제목+내용";?>">검색 기준 - 제목+내용</a>
</body></html>


bbb.php :
<?
$data = $_GET["data"];
echo $data;
?>

출력 : 제목 내용

aaa.php 파일을 실행하여 링크를 클릭하면 bbb.php 파일이 실행되어 브라우저에 위와같이 + 기호가 사라진 형태로 나타난다. GET 방식은 특수문자의 전송을 보장해 주지 못한다.

aaa.php 파일을 아래와 같이 수정한다.
<html><body>
<a href="bbb.php?data=<?echo urlencode("제목+내용");?>">검색 기준 - 제목+내용</a>
</body></html>

출력 : 제목+내용


urldecode
urldecode -- URL 인코드 문자열을 디코드합니다.
string urldecode ( string str)

주어진 문자열의 %## 인코딩을 디코드합니다. 디코드한 문자열을 반환합니다.

예 1. urldecode() 예제
<?php
$a = explode('&', $QUERY_STRING);
$i = 0;
while ($i < count($a)) {
   $b = split('=', $a[$i]);
   echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])),
         ' is ', htmlspecialchars(urldecode($b[1])), "<br />\n";
   $i++;
}
?>
 

참고: urlencode(), rawurlencode(), rawurldecode().

댓글목록

등록된 댓글이 없습니다.

Total 165건 4 페이지
PHP 목록
번호 제목 글쓴이 조회 날짜
90 MintState 15022 11-03
89 MintState 14792 11-03
88 MintState 15060 11-03
87 MintState 13970 11-03
86 MintState 24811 11-03
85 MintState 19874 11-03
84 MintState 23701 11-03
83 MintState 15988 11-03
82 MintState 18540 11-03
81 MintState 20238 11-03
80 MintState 12791 11-03
79 MintState 13798 11-03
열람중 MintState 14807 11-03
77 MintState 14660 11-03
76 MintState 10687 11-03
75 MintState 15431 11-03
74 MintState 13650 11-03
73 MintState 13123 11-03
72 MintState 14723 11-03
71 MintState 10573 11-03
70 MintState 11485 11-03
69 MintState 14618 11-03
68 MintState 14587 11-03
67 MintState 12861 11-03
66 MintState 12494 11-03
게시물 검색
모바일 버전으로 보기
CopyRight ©2004 - 2024, YesYo.com MintState. ™