>백엔드 개발 >PHP 튜토리얼 >다양한 문자 인코딩의 문자열에서 인쇄할 수 없는 문자를 효과적으로 제거하는 방법은 무엇입니까?

다양한 문자 인코딩의 문자열에서 인쇄할 수 없는 문자를 효과적으로 제거하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-10 19:32:11487검색

How to Effectively Remove Non-Printable Characters from Strings in Different Character Encodings?

문자열에서 인쇄할 수 없는 문자를 제거하는 방법

텍스트 데이터로 작업할 때 인쇄할 수 없는 문자를 제거해야 하는 경우가 많습니다. 일관성과 가독성을 보장합니다. 여기에는 제어 문자(0-31) 및 확장 ASCII 문자(127 이상)가 포함됩니다.

7비트 ASCII

7비트 ASCII 문자열의 경우 다음을 수행할 수 있습니다. 인쇄할 수 없는 문자를 제거하려면 다음 정규식을 사용하십시오.

$string = preg_replace('/[\x00-\x1F\x7F-\xFF]/', '', $string);

8비트 확장 ASCII

128-255 범위의 문자를 유지하려면 정규 표현식을 다음과 같이 조정하세요.

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

UTF-8

UTF-8 문자열, 유니코드를 수용하려면 /u 수정자를 사용하세요. 문자:

$string = preg_replace('/[\x00-\x1F\x7F\xA0]/u', '', $string);

대안: str_replace

preg_replace가 일반적으로 효율적이지만 다음과 같이 str_replace를 사용할 수도 있습니다.

// Create an array of non-printable characters
$badchars = array(
    // Control characters
    chr(0), chr(1), chr(2), chr(3), chr(4), chr(5), chr(6), chr(7), chr(8),
    chr(9), chr(10), chr(11), chr(12), chr(13), chr(14), chr(15), chr(16),
    chr(17), chr(18), chr(19), chr(20), chr(21), chr(22), chr(23), chr(24),
    chr(25), chr(26), chr(27), chr(28), chr(29), chr(30), chr(31),
    // Non-printable characters
    chr(127)
);

// Replace the bad characters
$str2 = str_replace($badchars, '', $str);

성능 고려 사항

preg_replace 또는 str_replace가 더 빠른지는 문자열 길이에 따라 다릅니다. 짧은 문자열의 경우 preg_replace가 일반적으로 더 빠르고, 긴 문자열의 경우 str_replace가 더 효율적일 수 있습니다. 최상의 접근 방식을 결정하려면 벤치마킹을 권장합니다.

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

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