앞에
라고 써있어요머리말
PHP는 배우기 쉽고 사용이 빠르기 때문에 일반적인 스크립팅 언어입니다. 거의 50%의 웹 프로그램에 PHP가 포함되어 있습니다(불완전한 통계). PHP는 개발을 위한 풍부한 기능과 API 인터페이스를 제공하므로 강력한 내장 기능과 확장 기능을 매우 편리하게 사용할 수 있습니다. 이 기사는 주로 장점을 요약한 "PHP는 큰 일을 할 수 있다" 시리즈의 첫 번째 기사입니다. PHP의 인코딩, 디코딩, 기본 변환에 대한 지식.
3. PHP 인코딩 및 디코딩
1. ASCII 인코딩 및 디코딩
ASCII(발음: 영어 발음: /ˈæski/ ASS-kee, 미국 정보 교환 표준 코드, 미국 정보 교환 표준 코드)는 라틴 알파벳을 기반으로 하는 컴퓨터 코딩 시스템입니다. 주로 현대 영어를 표시하는 데 사용되는 반면 확장 버전 EASCII는 다른 서유럽 언어를 부분적으로 지원할 수 있으며 국제 표준 ISO/IEC 646과 동일합니다. 월드와이드웹이 ASCII를 널리 사용하게 되면서 2007년 12월까지 점차적으로 유니코드로 대체되었습니다.https://zh.wikipedia.org/zh/ASCII
PHP 기본 함수에는 ASCII 인코딩 및 디코딩 기능이 내장되어 있어 ASCII 인코딩 및 디코딩을 쉽게 수행할 수 있습니다.
int ord ( string $string ) //string string의 첫 번째 문자의 ASCII 코드 값을 반환합니다.
string chr ( int $ascii ) //지정된 ASCII에 해당하는 단일 문자를 반환합니다.
2. URL 인코딩 및 디코딩
URL 인코딩은 양식 입력을 패키지화하기 위해 브라우저에서 사용하는 형식입니다. 브라우저는 양식에서 모든 이름과 값을 검색하여 URL의 일부로 또는 별도로 이름/값 매개변수 인코딩으로 서버에 보냅니다. 예를 들어 웹페이지를 방문하면 URL 인코딩인 %가 포함된 문자열이 많이 있을 것입니다.URL 인코딩은 일반적으로 UTF-8 인코딩 형식을 사용하므로 데이터 전송 시 UTF-8 형식을 사용하는 것이 좋습니다. 일반적인 의미의 URL 인코딩은 % 앞에 오는 ASCII 코드의 16진수 숫자로 이해될 수 있으며 대소문자 구별이 없습니다.
두 함수 세트는 공백 변환 처리를 제외하고 사용법은 동일합니다. rawurlencode는 공백을 공백으로 변환하는 것과 변환하지 않는 것이 다릅니다.
3. Base64 인코딩 및 디코딩
Base64는 인쇄 가능한 64개의 문자를 기반으로 하는 이진 데이터의 표현 방법입니다. 2의 6승은 64이므로 6비트마다 인쇄 가능한 문자에 해당하는 단위입니다. 3바이트는 4개의 Base64 단위에 해당하는 24비트를 갖습니다. 즉, 3바이트는 4개의 인쇄 가능한 문자로 표현되어야 합니다. 이메일 전송 인코딩으로 사용할 수 있습니다. 사용되는 문자는 대문자 26자, 소문자 10자, 숫자 10자, 더하기 기호 " ", 슬래시 "/" 총 64자이며, 접미사로 등호 "="를 사용합니다. base64의 전체 정의는 RFC 1421 및 RFC 2045에서 찾을 수 있습니다. 인코딩된 데이터는 원본 데이터보다 약간 길어서 원본의 4/3 정도입니다. 이메일에서는 RFC 822에 따라 76자마다 캐리지 리턴과 라인 피드를 추가해야 합니다. 인코딩된 데이터 길이는 원래 길이의 약 135.1%인 것으로 추정할 수 있습니다. https://zh.wikipedia.org/zh/Base64
string base64_encode(string $data) //base64를 사용하여 데이터를 인코딩합니다.
string base64_decode (string $data [, bool $strict = false ]) //base64로 인코딩된 데이터를 디코딩합니다.
사례: HTML 페이지의 img 태그는 src 속성에서 base64 인코딩을 사용하여 이미지를 출력할 수 있으므로 HTTP 요청 수를 줄일 수 있습니다.
4. HTML 엔터티 인코딩 및 디코딩
일부 문자는 HTML에 예약되어 있으며 특별한 의미를 갖습니다. 예를 들어, "<" 기호는 HTML 태그의 시작을 정의하는 데 사용됩니다. 브라우저가 이러한 문자를 올바르게 표시하도록 하려면 HTML 소스 코드에 문자 엔터티를 삽입해야 합니다. 문자 엔터티는 앰퍼샌드 "&"와 엔터티 이름(또는 "#"과 엔터티 번호), 세미콜론 ";"의 세 부분으로 구성됩니다. http://www.ascii.cl/htmlcodes.htm
string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = “UTF-8″ [, bool $double_encode = true ]]] ) //HTML을 다음 HTML 특수 문자로 변환합니다. 엔터티 인코딩
1.'&'(앰퍼샌드)는 '&'가 됩니다
2.'"'(큰따옴표)는 ENT_NOQUOTES가 설정되지 않은 경우 '"'가 됩니다.
3."'"(작은따옴표)는 ENT_QUOTES가 설정된 경우에만 '''(또는 ')가 됩니다.
4.'<'(보다 작음)은 '<'
이 됩니다.
5.'>'(보다 큼)은 '>'
string htmlspecialchars_decode (string $string [, int $flags = ENT_COMPAT | ENT_HTML401 ]) //이 함수의 기능은 htmlspecialchars()와 정확히 반대입니다. 특수 HTML 엔터티를 다시 일반 문자로 변환합니다.
동일한 기능을 가진 htmlentities/html_entity_decode 함수도 있습니다. 이 함수 쌍은 중국어 문자를 HTML 엔터티로 인코딩하고 잘못된 문자를 생성하므로 인코딩 및 디코딩에 htmlspecialchars를 사용하는 것이 좋습니다.
사례: XSS 크로스 사이트 스크립팅 공격을 방지하려면 사용자가 제출한 데이터의 HTML 엔터티 변환이 필요합니다.