2009-03-10 4 views
0

잘못된 문자가 포함 된 문자열을 정리하고 textarea에서 인쇄 한 후 html을 깨뜨리는 방법은 무엇입니까?PHP : 잘못된 문자 쪼개기 html

PHP의 ord()은 해당 문자에 대해 0을 반환하지만 null이 아닌 것으로 의심됩니다. 어쨌든 중요하지 않다고 생각합니다.

문자열이 텍스트 영역에 표시되면 잘못된 문자 뒤의 모든 텍스트와 텍스트 영역 뒤의 모든 html 요소가 사라집니다.

나는 htmlentities, htmlspecialchars, mb_convert_encoding, iconv('UTF-8', 'UTF-8//IGNORE', $str)으로 시도했지만 어느 것도 작동하지 않았습니다.

filter_var()은 아직 사용하지 않는 5.1.2에 도입되었습니다. filter_var($string, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW)을 시도

에코와 위해서 var_dump는

+0

우리는이 문제를 해결 한 멀티 바이트 정규 표현식 함수를 사용하여 종료했습니다. – Mitja

답변

2

로 문자를 인쇄 할 수 있습니다.

편집 : 5.1.2 이후이 filter_var이 없습니다, 당신은 시도 할 수 있었다 (거의 같은 일이다)이 : 나는 때를 htmlentities, 반드시 htmlspecialchars, 전에이 정규 표현식을 사용했다

preg_replace('/\p{Cc}/u', '', $string); 
+0

감사합니다. 그러나 filter_var()가 아직없는 5.1.2를 사용하고 있습니다. – Mitja

+0

나는 그들이 5.1에 대한 필터 확장의 PECL 버전을 가지고 있다고 생각하지만, 나는 어쨌든 그 게시물에 또 다른 대답을 추가했다 ... – flussence

1

mb_convert_encoding, iconv ('UTF-8', 'UTF-8 // 무시', $ str)가 작동하지 않았습니다. 그것은 제어 문자

아마
$str = preg_replace('/[\x00-\x08\x0B-\x0C\x0E-\x1F\x7F-\x9F]/', '', $str); 
0

떼어 내고 :

$str = trim($str, chr(0)); 

을 ??