> 백엔드 개발 > PHP 튜토리얼 > PHP의 문자열에서 인쇄할 수 없는 문자를 어떻게 제거할 수 있나요?

PHP의 문자열에서 인쇄할 수 없는 문자를 어떻게 제거할 수 있나요?

Patricia Arquette
풀어 주다: 2024-12-10 17:07:10
원래의
722명이 탐색했습니다.

How Can I Remove Non-Printable Characters from a String in PHP?

문자열에서 인쇄할 수 없는 문자 제거

경우에 따라 문자열에서 인쇄할 수 없는 문자를 제거해야 할 수도 있습니다. 문자열(예: 문자열 조작 또는 데이터 중 범위 0-31 및 127 내의 문자열)

7비트 ASCII

7비트 ASCII 범위(0-31, 127-255)에서 인쇄할 수 없는 문자를 제거하려면 다음을 사용합니다. preg_replace를 사용하는 다음 정규 표현식:

$string = preg_replace('/[x00-x1Fx7F-xFF]/', '', $string);

이렇게 하면 지정된 범위 내의 모든 문자가 효과적으로 제거됩니다.

8비트 확장 ASCII를 처리하려면, 0-31 및 127 범위의 문자만 제거하려면 조정된 정규 표현식을 사용하세요.

$string = preg_replace('/[x00-x1Fx7F]/', '', $string);

UTF-8

UTF-8로 인코딩된 문자열의 경우 정규 표현식에 /u 수정자를 통합하는 것이 좋습니다.

$string = preg_replace('/[x00-x1Fx7F]/u', '', $string);

이렇게 하면 xA0을 추가하여 NO-break SPACE(U 00A0)와 같은 특정 제어 문자를 정확하게 제거할 수 있습니다. 문자 클래스.

부록: str_replace 대체

preg_replace가 효율적이지만 특히 반복 작업의 경우 str_replace를 대안으로 고려하세요.

// 인쇄할 수 없는 문자 배열 만들기
$badchars = array (

chr(0), chr(1), chr(2), ..., chr(31),
chr(127)
로그인 후 복사

);

// str_replace를 사용하여 원하지 않는 문자 바꾸기
$str2 = str_replace($badchars, '', $str);

최적의 솔루션을 결정하려면 자체 데이터를 사용하여 두 접근 방식의 성능을 벤치마킹하는 것이 중요합니다. 귀하의 특별한 경우에 적합합니다.

위 내용은 PHP의 문자열에서 인쇄할 수 없는 문자를 어떻게 제거할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿