php urlencode()와 urldecode()함수 문자 인 코딩 원리 상세 설명

3950 단어 urlencodeurldecode
그 원 리 는 중국어 문 자 를 16 진법 으로 바 꾸 고 특정한 규칙 에 따라 문자열 조합 을 하여 문자 의 인 코딩 과 인 코딩 을 실현 하고 URL 데이터 전달 과정 에서 문자 의 완전 성과 호환성 을 확보 하 며 주로 중국어 문자 의 인 코딩 상황 을 토론 하 는 것 이다.첫째,Firefox 브 라 우 저 인 코딩 중국어 문 자 는 Firefox 브 라 우 저 에서 중국어 문 자 를 입력 하면 URL 인 코딩 이 자동 으로 이 루어 집 니 다.다음 Enter 키 를 누 르 기 전에 php-internet-url-encode-before Enter 키 를 누 른 후 php-internet-url-encode 2,urlencode()함수 원리 urlencode()함 수 는 인 코딩 URL 문자열 에 사 용 됩 니 다.여기 서 중국어 문자 의 인 코딩 상황 을 토론 합 니 다.인 스 턴 스 는 다음 과 같 습 니 다
 
echo urlencode(' ');// :%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7
urlencode()함수 원 리 는 먼저 중국어 문 자 를 16 진법 으로 바 꾼 다음 에 모든 문자 앞 에 식별 자%를 추가 하여 이 원 리 를 이해 하면 사용자 정의 URL 인 코딩 함 수 를 실현 할 수 있 습 니 다.코드 는 다음 과 같 습 니 다
 
$string = " ";
$length = strlen($string);
echo $string;
$result = array();
//
for($i=0;$i<$length;$i++){
if(ord($string[$i])>127){
$result[] = ord($string[$i]).' '.ord($string[++$i]);
}
}
var_dump($result);
//
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = "%".dechex($dec[0])." "."%".dechex($dec[1]);
}
var_dump($strings);
php-self-urlencode 상기 코드 는[PHP 에서 중국어 문자 의 진 변환 원리 분석]한 글 에서 중국어 문자 가 16 진 으로 전환 하 는 원리 분석 부분 에 대해 상세 하 게 논 의 했 습 니 다.한자 의 각 문 자 를 얻 은 다음 에 16 진 으로 전환 하 는 동시에 모든 문자 앞 에 특수 한 식별 자%를 추가 하면 urlencode()함수 의 기능 을 실현 합 니 다.출력 결 과 는 다음 과 같 습 니 다.출력 결 과 는 urlencode()인 코딩 을 직접 사용 하 는 문자 와 비교 합 니 다.예 를 들 어%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7 은 위의 인 스 턴 스 를 통 해 알 수 있 듯 이 urlencode()함수 로 중국어 문 자 를 인 코딩 하 는 것 은 실질 적 으로 문 자 를 16 진법 으로 바 꾸 고 첫 번 째 문자 왼쪽 에 특수 한 식별 자%3 을 추가 하 는 것 입 니 다.url decode()함수 원 리 는 url decode()함수 로 인 코딩 된 URL 문자열 을 디 코딩 합 니 다.인 스 턴 스 는 echo url decode('%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7')입 니 다./출력:형 urldecode()함수 와 urlencode()함수 원리 에 반 해 인 코딩 된 URL 문자열 을 디 코딩 하 는 데 사용 하지 마 십시오.그 원 리 는 16 진 문자열 을 중국어 문자 로 변환 하 는 것 입 니 다.위의 인 스 턴 스 와 결합 하면 사용자 정의 함수 디 코딩 문자열
 
$string = '%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7';
$length = strlen($string);
$hexs = array();
for($i=0;$i<$length;$i++){
if($string[$i] == '%'){
$hexs[] = $string[++$i].$string[++$i];
}
}
$num = count($hexs);
for($i=0;$i<$num;$i++){
echo chr(hexdec($hexs[$i])).chr(hexdec($hexs[++$i]));
}
위의 인 스 턴 스 코드 는 먼저 문자열 의 규칙 에 따라 각 문자 의 16 진 을 추출 할 수 있 습 니 다.그 다음 에 hexdec()함 수 를 사용 하여 16 진 을 10 진 으로 바 꾼 다음 에 chr()함 수 를 사용 하여 10 진 을 문자 로 바 꾸 고 16 진 을 문자 로 바 꿉 니 다.출력 결 과 는 다음 과 같다.
php-self-urldecode 4,urldecode()와 urlencode()함수 설명 urlencode(PHP 3,PHP 4,PHP 5)urlencode-인 코딩 URL 문자열 설명 string urlencode(string str)반환 문자열,이 문자열 은- 를 제외 합 니 다.이외 의 모든 비 자모 숫자 문 자 는 백분율(%)로 바 뀌 고 두 자리 16 진수 로 바 뀌 며 빈 칸 은 플러스(+)로 인 코딩 됩 니 다.이 인 코딩 은 WWW 폼 POST 데이터 의 인 코딩 방식 과 같 으 며,application/x-ww-form-urlencoded 의 미디어 형식 인 코딩 방식 과 같 습 니 다.역사적 인 이유 로 이 인 코딩 은 빈 칸 을 플러스(+)로 인 코딩 하 는 데 RFC 1738 인 코딩(rawurlencode()참조)과 다 릅 니 다.이 함 수 는 문자열 을 인 코딩 하여 URL 의 요청 부분 에 사용 할 수 있 으 며,다음 페이지 의 url decode(PHP 3,PHP 4,PHP 5)url decode-인 코딩 된 URL 문자열 을 디 코딩 하여 string url decode(string str)디 코딩 된 인 코딩 된 문자열 의%\##를 설명 합 니 다.디 코딩 된 문자열 을 되 돌려 줍 니 다.5.참고 자원 urlencode()설명 urldecode()설명

좋은 웹페이지 즐겨찾기