다국어 사이트의 검색 창에서 오는 문자열을 정리하려고합니다.다중 언어 문자열의 허용 목록 이외의 문자를 모두 필터링하는 정규식
일반적으로 내가 좋아하는 정규식 사용합니다 :
$allowed = "-+?!,.;:\w\s";
$txt_search = preg_replace("/[^" . $allowed . "]?(.*?)[^" . $allowed . "]?/iu", "$1", $_GET['txt_search']);
을하고 영어 텍스트를 위해 잘 작동합니다.
그러나 입력 한 텍스트가 다른 언어 (예 : 러시아어, 중국어)로되어있을 때도 동일한 작업을 수행해야합니다.
"일반 텍스트"를 원래 언어로 유지하면서 문자열을 정리하려면 어떻게해야합니까?
하지만 블랙리스트로 전환하는 데는 (비록 내가하지는 않지만 ...)하지만이 순간에는 정규 표현식이 모든 원본 입력을 완전히 파괴합니다.
감사합니다. 나는 * 잘못된 UTF-8 문자열을 오프셋 5 *에서 계속 유지합니다. PCRE가 유니 코드 속성으로 컴파일되지 않았을 가능성이 있으며이를 확인할 수 있습니까? 지금 우분투 9.10 데스크탑 서버에서 테스트하고 있습니다. – jeroen
나는 그것을 작동시킬 수는 없지만 다른 서버에서 시도해 보겠다. 아마 로컬 문제 일 것이다. – jeroen