2009-07-25 10 views
0

풍부한 HTML 텍스트 문자열에 HTML 엔터티를 사용하고 있지만 일부 문자는 여전히 사용 중입니다 ... 어떻게 HTML 형식을 유지하거나 강제로 강제로 영어 전용 모드를 유지할 수 있습니까? HTML로? 이 같은php : 원치 않는 문자 제거

+0

영어 이외의 문자를 적절하게 처리하고 엔티티를 사용하지 않는 것이 좋습니다. – artificialidiot

답변

4

phpbuilder에서 다음 코드 조각이 적당하다고 생각합니다. 그것은 정규식을 사용하여 잘못된 문자에 대한 일부 입력 ($ 문자열)을 확인합니다.

if(preg_match("@[^a-zA-Z0-9\~`\!\@#$%\^&\*\(\)_\-\+\=\{\}\[\]\'\"\:\;\?\/\>\<\.\,\|]*@", $string) { 
    // There are non-english characters.... 
} else { 
    // There are no non-english characters 
} 

행운을 빕니다.

0

시도 뭔가 :

$arr_busca = array('á','à','â','ã','ª','Á','À', 
    'Â','Ã', 'é','è','ê','É','È','Ê','í','ì','î','Í', 
    'Ì','Î','ò','ó','ô', 'õ','º','Ó','Ò','Ô','Õ','ú', 
    'ù','û','Ú','Ù','Û','ç','Ç','Ñ','ñ'); 
    $arr_susti = array('a','a','a','a','a','A','A', 
    'A','A','e','e','e','E','E','E','i','i','i','I','I', 
    'I','o','o','o','o','o','O','O','O','O','u','u','u', 
    'U','U','U','c','C','N','n'); 
    $nom_archivo = trim(str_replace($arr_busca, $arr_susti, $nom_archivo)); 
    return $nom_archivo; 

나는 변수 스페인어 이유입니다 php.net str_replace page에서 직접 가지고 ...

코멘트에서 언급 한 바와 같이,이입니다 확인할 불완전한 문자 목록이지만, 이것들을 검사하고 바꾸는 방법에 대한 아이디어입니다. 라이브러리를 검색 할 수 있습니다.

+0

그 목록은 끔찍하게 불완전하고, 나는 의지하는 것이 안전하다고 생각하지 않습니다. å, ä, ö 및 ü와 같은 북유럽의 언어에서 사용되는 문자는 포함하지 않습니다. –

+0

그래서 내가 PHP 페이지에서 직접 가져 왔다고 했지. –

+0

예, 영어로는 불완전하지만 영문으로 대체하는 기술입니다. 나는 그것을 더 잘 할 실제 라이브러리가 있다고 확신한다. –