>백엔드 개발 >PHP 문제 >PHP에서 일반 특수 문자를 이스케이프 처리하는 방법

PHP에서 일반 특수 문자를 이스케이프 처리하는 방법

藏色散人
藏色散人원래의
2020-10-20 09:18:134621검색

PHP에서 일반 특수 문자를 이스케이프하는 방법: 먼저 PHP 샘플 파일을 만든 다음 문자열을 정의하고 마지막으로 백슬래시를 통해 특수 문자를 이스케이프하고 변수를 구문 분석합니다.

PHP에서 일반 특수 문자를 이스케이프 처리하는 방법

추천: "PHP Video Tutorial"

Problem

최근에 PHP 정규 표현식을 사용했는데 표현식 문자열을 작성할 때 몇 가지 문제가 발생했습니다. 이제 백슬래시 ""를 사용해야 하는지 모르겠습니다. 일부 정렬을 위해.

PHP 문자열

PHP 문자열을 정의하는 방법에는 4가지가 있습니다:

  • 작은따옴표
  • 큰따옴표
  • heredoc 구문 구조
  • nowdoc 구문 구조(PHP 5.3.0부터)

문자 정의 문자열, 특수 문자일 때 문자는 이스케이프되고 변수는 구문 분석됩니다. ㅋㅋㅋ

r

CR 또는 0x0D
레벨 탭 문자 t HT 또는 0x09
세로 탭 문자 v VT 또는 0x0B
페이지 변경 f FF 또는 0x0C
백슬래시 \
달러 기호 $
큰따옴표 "
작은따옴표 '
8진수 문자 [0-7 ]{1,3 }
16진수 문자 x[0-9A-Fa-f]{1,2}

이 부분에 대한 자세한 내용은 PHP 매뉴얼을 참조하세요. 간단한 설명은 다음과 같습니다.

작은따옴표(')와 백슬래시()를 이스케이프하고 다른 문자의 원래 의미를 출력합니다.

큰따옴표는 제외합니다. quote 따옴표(")의 특수 문자는 이스케이프되고 변수는 구문 분석됩니다.

따라서 이러한 두 가지 일반적인 문자열 정의에서 백슬래시()는 항상 이스케이프됩니다.

PHP 정규 표현식

PHP는 두 세트의 정규 표현식을 제공합니다. 표현식 함수 라이브러리: [참고]

One은 접두어 "preg_"로 명명된 함수가 포함된 PCRE(Perl Compatible Regular Expression) 라이브러리에서 제공됩니다.
One은 POSIX(Portable) 확장에서 제공됩니다. PHP 기본값).

정규식은 일치, 대체 및 분할 기능을 제공합니다.

현재는 Perl 스타일의 정규식만 사용되며 아래에서는 이 유형의 문자열만 설명합니다.

Perl 스타일 정규식은 다음과 같이 구분 기호("/" 또는 "#") 안에 포함되어야 합니다. [참고]

$str = 'http://www.youku.com/show_page/id_ABCDEFG.html';
$regex = '/^http:\/\/([\w.]+)\/([\w]+)\/([\w]+)\.html$/i';
$regex = '#^http://([\w.]+)/([\w]+)/([\w]+)\.html$#i';

URL을 분할하려면 $regex 변수가 정규식 문자열을 정의합니다. :

^http://([w.]+)/([w]+)/([w]+).html$

이 문자열에는 "/" 및 "."와 같은 특수 문자가 포함되어 있습니다. , Perl 스타일의 백슬래시("")로 이스케이프하고 정의해야 합니다.

^http://([ w.]+)/([w]+)/([w]+). html$

동시에 이 문자열은 구분 기호에 포함되어야 하므로 위의 두 가지 유형의 표현식이 있습니다. " #"은 구분 기호이므로 "/"를 이스케이프할 필요가 없습니다.

정규식 이스케이프

정규식에서 다음 단일 문자를 일치시키려면 백슬래시(" ")를 사용하여 이스케이프해야 합니다:

"", "?", "*", "^", "$", "+", "(", ")", "|", "{", "["

Perl 스타일 정규 표현식에서 다음 단일 문자와 일치하거나 일치하지 않는 단일 문자와 일치하는 경우 위에서는 백슬래시("")를 사용하여 이스케이프 처리해야 합니다.

^=}]/:<> ;.'"

Summary

올바른 Perl 스타일 정규식 문자열을 작성하려면 세 단계가 필요합니다. :

올바른 정규 표현식을 작성하고 특수 문자 이스케이프에 주의하세요

구분 문자를 입력하고 Perl 스타일 이스케이프 규칙을 사용하여 이스케이프하세요

PHP 문자열 정의에 따라 위 문자열의 내용을 이스케이프하세요

위 내용은 PHP에서 일반 특수 문자를 이스케이프 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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