문자열에서 인쇄할 수 없는 문자를 제거하는 방법
텍스트 데이터로 작업할 때 인쇄할 수 없는 문자를 제거해야 하는 경우가 많습니다. 일관성과 가독성을 보장합니다. 여기에는 제어 문자(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 중국어 웹사이트의 기타 관련 기사를 참조하세요!