>  기사  >  백엔드 개발  >  PHP의 urlencode() URL 인코딩 기능 분석에 대해

PHP의 urlencode() URL 인코딩 기능 분석에 대해

不言
不言원래의
2018-06-21 11:43:052504검색

이 글은 주로 PHP의 urlencode() URL 인코딩 기능에 대한 분석을 소개합니다. 이는 특정 참고 가치가 있습니다. 이제 여러분과 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다.

URLEncode: 웹에 있는 한자를 나타냅니다. 페이지 URL 인코딩 변환 방법 중 가장 일반적인 방법은 바이두, 구글 등 검색 엔진에 중국어 검색어가 입력될 때 인코딩된 웹페이지 URL을 생성하는 것입니다.

URLEncode에는 일반적으로 두 가지 방법이 있습니다. 하나는 GB2312 기반의 전통적인 인코딩(Baidu, Yisou 등에서 사용)이고 다른 하나는 UTF-8 인코딩(Google, Yahoo 등에서 사용)을 기반으로 합니다.
이 도구는 각각 두 가지 인코딩 및 디코딩 방법을 구현합니다.
중국어-> GB2312 인코딩 -> %D6%D0%CE%C4
중국어-> UTF-8 인코딩 -> %E6%96%87
URLEncode in Html:
GB2312로 인코딩된 html 파일: http://s.php.cn/中文.rar -> 브라우저는 자동으로 -> php.cn/%D6%D0%CE%C4.rar
참고: Firefox는 기본적으로 UTF-8 인코딩으로 URL을 보내기 때문에 GB2312 인코딩의 중국어 URL을 지원하지 않지만 ftp:// 프로토콜은 할 수 있으므로 시도해 보았습니다. , 저는 이것이 Firefox 버그로 간주되어야 한다고 생각합니다.
UTF-8로 인코딩된 HTML 파일: http://s.php.cn/中文.rar -> 브라우저는 자동으로 -> AD%E6%96%87.rar
URLEncode in PHP:

<?php 
//GB2312的Encode 
echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+ 
echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_. 
echo rawurlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.%20 
echo rawurldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_. 
?>

"-_."를 제외한 모든 영숫자가 아닌 문자는 백분율 기호 "%" 뒤에 2개의 16진수 숫자로 대체됩니다.
urlencode와 rawurlencode의 차이점: urlencode는 공백을 더하기 기호 "+"로 인코딩하고 rawurlencode는 공백을 더하기 기호 "%20"으로 인코딩합니다.
UTF-8 인코딩을 사용하려면 두 가지 방법이 있습니다.
1. 파일을 UTF-8 파일로 저장하고 urlencode 또는 rawurlencode를 직접 사용합니다.
2. mb_convert_encoding 함수를 사용하세요:

<?php 
$url = &#39;http://s.php.cn/中文.rar&#39;; 
echo urlencode(mb_convert_encoding($url, &#39;utf-8&#39;, &#39;gb2312&#39;))."\n"; 
echo rawurlencode(mb_convert_encoding($url, &#39;utf-8&#39;, &#39;gb2312&#39;))."\n"; 
//http%3A%2F%2Fs.jb51.net%2F%E4%B8%AD%E6%96%87.rar 
?>

예:

<?php 
function parseurl($url="") 
{ 
$url = rawurlencode(mb_convert_encoding($url, &#39;gb2312&#39;, &#39;utf-8&#39;)); 
$a = array("%3A", "%2F", "%40"); 
$b = array(":", "/", "@"); 
$url = str_replace($a, $b, $url); 
return $url; 
} 
$url="ftp://ud03:password@s.php.cn/中文/中文.rar"; 
echo parseurl($url); 
//ftp://ud03:password@s.php.cn/%D6%D0%CE%C4/%D6%D0%CE%C4.rar 
?>

URLEncode in JavaScript:
예: %E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6% 96 %87-_.%20
encodeURI는 ":", "/", ";", "?", "@" 및 기타 특수 문자를 인코딩하지 않습니다.
예: http://s.php.cn/%E4%B8%AD%E6%96%87.rarhttp%3A%2F%2Fs.jb51.net%2F%E4%B8%AD%E6%96 % 87.rar

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

PHP는 WeChat 공용 플랫폼 기업 계정 확인 인터페이스를 구현합니다

다항식 도함수를 찾는 PHP 함수 코드 정보

위 내용은 PHP의 urlencode() URL 인코딩 기능 분석에 대해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.