>  기사  >  백엔드 개발  >  PHP 문자열에서 제어 문자를 효과적으로 제거하는 방법은 무엇입니까?

PHP 문자열에서 제어 문자를 효과적으로 제거하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-30 12:33:04753검색

How to Effectively Remove Control Characters from PHP Strings?

PHP 문자열에서 제어 문자 제거

Q: 제어 문자 제거를 위한 정규식 수정

한 PHP 개발자는 이전에 문자열에서 STX와 같은 제어 문자를 제거하기 위해 다음 표현식을 사용했습니다.

preg_replace("/[^a-zA-Z0-9 .\-_;!:?äÄöÖüÜß<>='\"]/","",$pString)

그러나 결과는 지나치게 제한적이어서 제어 문자를 어떻게 선택적으로 제거할 수 있습니까?

A: 제어 문자 식별을 위해 특정 문자 클래스 활용

제어 문자를 정확하게 타겟팅하기 위해 보다 구체적인 문자 클래스를 활용할 수 있습니다.

preg_replace('/[\x00-\x1F\x7F]/', '', $input);

이 표현식은 처음 32자를 포함하는 x00-x1F 및 x7F 범위 내의 ASCII 코드와 캐리지 리턴과 같은 문자를 포함하는 x7F를 사용하는 문자를 일치시킵니다.

줄 바꿈과 같은 필수 문자 보존

줄 바꿈이나 캐리지 리턴과 같은 특정 문자를 보존해야 하는 경우 해당 문자의 이스케이프 시퀀스를 제외할 수 있습니다.

preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $input);

이 수정된 표현식에서 x0A(줄 바꿈) 및 x0D (캐리지 리턴)은 문자 클래스에서 제외됩니다.

최신 구문 및 사용 중단

PHP 5.3.0 및 해당 버전에서 ereg_replace가 사용되지 않는다는 점에 유의하는 것이 중요합니다. PHP 7.0.0에서는 이후 제거 시 ereg_replace보다 preg_replace를 사용해야 합니다.

마지막으로 제어 문자용 문자 클래스

간결하고 이식 가능한 대안을 위해 문자 클래스 [:cntrl:] 취업 가능:

preg_replace('/[[:cntrl:]]/', '', $input);

위 내용은 PHP 문자열에서 제어 문자를 효과적으로 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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