경우에 따라 문자열에서 인쇄할 수 없는 문자를 제거해야 할 수도 있습니다. 문자열(예: 문자열 조작 또는 데이터 중 범위 0-31 및 127 내의 문자열)
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로 인코딩된 문자열의 경우 정규 표현식에 /u 수정자를 통합하는 것이 좋습니다.
$string = preg_replace('/[x00-x1Fx7F]/u', '', $string);
이렇게 하면 xA0을 추가하여 NO-break SPACE(U 00A0)와 같은 특정 제어 문자를 정확하게 제거할 수 있습니다. 문자 클래스.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!