> 백엔드 개발 > PHP 튜토리얼 > 문자열에서 인쇄할 수 없는 ASCII 문자(0-31 및 127)를 효율적으로 제거하려면 어떻게 해야 합니까?

문자열에서 인쇄할 수 없는 ASCII 문자(0-31 및 127)를 효율적으로 제거하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2024-12-12 16:58:16
원래의
801명이 탐색했습니다.

How Can I Efficiently Remove Non-Printable ASCII Characters (0-31 and 127) from a String?

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

문자열에서 인쇄할 수 없는 문자를 제거해야 하는 상황에서는 다양한 접근 방식을 사용할 수 있습니다. . 이 질문은 0-31 및 127 범위의 문자를 제거하는 데 중점을 둡니다.

제거 옵션:

preg_replace 정규 표현식:

preg_replace 함수와 함께 정규 표현식을 사용하는 것은 특정 항목에 대한 제거를 맞춤화할 수 있는 다용도 방법입니다. 범위. 예:

$string = preg_replace('/[\x00-\x1F\x7F-\xFF]/', '', $string);
로그인 후 복사

이 표현식은 지정된 범위의 문자를 대상으로 하고 문자열에서 해당 문자를 제거합니다.

str_replace 문자 대체:

If 원하는 문자는 제한되어 있으므로 해당 문자의 배열을 만들면 정규식을 피할 수 있습니다. 그런 다음 str_replace 함수를 사용할 수 있습니다:

$badChars = [chr(0), chr(1), chr(2), ...];
$string = str_replace($badChars, '', $string);
로그인 후 복사

고려 사항:

문자 인코딩:

언급된 대상 범위 (0-31 및 127)은 ASCII의 제어 문자에 맞춰 정렬됩니다. 그러나 다른 문자 인코딩에는 조정이 필요할 수 있습니다. UTF-8의 경우 정규 표현식의 '/u' 수정자는 적절한 일치를 보장합니다.

유니코드 확장자:

UTF-8에서는 인쇄할 수 없는 추가 문자 0-31을 넘어 127까지 존재할 수 있습니다. 이를 처리하려면 일치하지 않는 문자를 제거 배열에 포함하거나 정규 표현식과 함께 '/u' 수정자를 사용하세요.

성능 벤치마킹:

정규 표현식에서 표현식은 일반적으로 효율성이 뛰어나지만 str_replace는 특정 시나리오에서 더 나은 성능을 발휘할 수 있습니다. 최적의 솔루션을 결정하려면 처리 중인 특정 데이터를 사용하여 두 가지 접근 방식을 모두 벤치마킹하는 것이 좋습니다.

위 내용은 문자열에서 인쇄할 수 없는 ASCII 문자(0-31 및 127)를 효율적으로 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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