2012-03-03 3 views

답변

5

ereg_ * (POSIX) 함수는 오랫동안 사용되지 않았습니다. 이 방법을 사용하여 계속해서는 안됩니다. POSIX Bracket Expressions[:cntrl:] 따르면

아스키 범위 [\x00-\x1F\x7F] (또는 유니 \p{Cc}) 및 [:space:][ \t\r\n\v\f]로 확인을 해결한다. asciitable.com을 사용하여 해당 문자를 해결하면 [\x20\x09-\x0D]의 제외 목록이 남습니다. "수학하기"는 [\x00-\x08\x0E-\x1F\x7F]으로 남았습니다.

$message = preg_replace('/[\x00-\x08\x0E-\x1F\x7F]+/', '', $message); 

VT (수직 탭)과 FF (용지 공급, 새로운 페이지)도

를 보존하는 것으로 : 그리고 그 다음, PHP 5.3과 상위 호환, 위생 당신을 떠난다. 당신도, 이들을 제거 할 상황에 있습니다 따라 :

$message = preg_replace('/[\x00-\x08\x0E-\x1F\x7F\x0A\x0C]+/', '', $message); 
0

[[:cntrl:]][\x00-\x1f\x7F][[:space:]][ \t\r\n\v\f](ref) 동등하므로 긴 손 방법 [\x00-\x08\x0E-\x1F\7F]을 사용하는 것이 기본적

(스페이스가 0x20이고 CNTRL 범위 밖으로 \t\r\n\v\f은 X09이 X0D을 \하는 \이다)
관련 문제