"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP 문자열에서 제어 문자를 효과적으로 제거하는 방법은 무엇입니까?

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

2024년 11월 12일에 게시됨
검색:640

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);

이 표현식 \x00-\x1F 및 \x7F 범위(처음 32자 포함) 및 \x7F(캐리지 리턴과 같은 문자 포함) 범위 내의 ASCII 코드 문자와 일치합니다.

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

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

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

이 수정된 표현식에서 , \x0A(라인 피드) 및 \x0D(캐리지 리턴)은 문자에서 제외됩니다. class.

최신 구문 및 지원 중단

PHP 5.3.0에서 ereg_replace가 지원 중단되고 이후 PHP 7.0.0에서 제거됨에 따라 ereg_replace 대신 preg_replace를 사용합니다.

마지막으로 제어를 위한 문자 클래스 문자

간결하고 이식 가능한 대안을 위해 문자 클래스 [:cntrl:]를 사용할 수 있습니다:

preg_replace('/[[:cntrl:]]/', '', $input);
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3