2012-03-13 3 views
-3

like 같은 이러한 원치 않는 문자는 어떻게 제거합니까?PHP를 사용하여 이러한 원치 않는 문자를 제거하십시오.

이미 문자 인코딩을 utf-8로 설정했지만 여전히 이러한 문자가 나타납니다.

사람이 단어의 텍스트를 복사하여 TinyMCE에 붙여 넣으면 원하지 않는 문자가 db에 저장되기 전에 나타나지 않습니다. DB에서 저장하고 가져 오면 원하지 않는 문자가 나타납니다.

Heres는 필터링을 내 현재 코드 :

$content = htmlentities(@iconv("UTF-8", "ISO-8859-1//IGNORE", $content)); 

이 사용하기 좋은 그러나 상황이 원하지 않는 문자의 일부 완전히 필터링되지 않습니다이다.

+3

을 문자가 무엇입니까? 소스 데이터의 인코딩은 무엇입니까? – geoffspear

+0

지금까지 시도한 내용은 무엇입니까? – Ghostman

+0

PHP가 이러한 문자를 출력하고 있습니까? 브라우저가 잘못 표시했을 수 있습니다. 생성하는 코드를 게시 할 수 있습니까? – vascowhite

답변

-2

어쩌면 str_replace()? 사용중인 문자가 보이지 않습니다.

$badChars = array('$', '@', '~', 'R', '¬'); 

str_replace($badChars, '', $string); 
+0

나는 그것을 시도했지만 아직 부족하다 ... – naviciroel

+0

내 대답을 비난하지 마라. – SuperSpy

+0

이 코드는 문자를 그냥 * 제거한다. –

1

이러한 문자는 단순히 출력하지 않아도 제거 할 수 있습니다 (예 : 작동 함).

보다 구체적인 지침이 필요한 경우 질문에 대한 구체적 내용이 필요합니다. 당신은 지금까지 공유 일부 정보 : 이미 UTF-8

그것은 그 문자 인코딩이 적용 무엇을 실종에 문자 인코딩을 설정 한

. 출력입니까? 문자열 자체입니까 (어딘가에 문자열이 있어야합니다)? 그것은 입력입니까?

a) 코드의 원인을 명확히하고 b) 코드와 관련된 문자열의 인코딩을 공유해야합니다.

0

왜 거꾸로 작동하지 않습니까?

$cleanStr = preg_replace('/\W/', '', $yourInput); 

다른 방법으로, '/[^a-zA-Z0-9_]/' 더 정확하게 할 수 있지만 /W는 블록을 나타냅니다이 정규식 모든 "비 단어"문자를 제거합니다.

0

과거에 사용했던 원치 않는 문자를 정리하는 방법은 여러 가지가 있습니다. (MySQL의 물건을 할 때 내가는 mysql_real_escape_string을 명심하십시오.

////////////////////////////////////////////////////////////////////////////////// 
// FUNCTION:  cleaner 
// DESCRIPTION: Used mainly to clean large chunks of copy and pasted copy from 
//    word and on macs 
////////////////////////////////////////////////////////////////////////////////// 
function cleaner($some_var){ 
    $find[] = '“'; // left side double smart quote 
    $find[] = 'â€'; // right side double smart quote 
    $find[] = '‘'; // left side single smart quote 
    $find[] = '’'; // right side single smart quote 
    $find[] = '…'; // elipsis 
    $find[] = 'â€"'; // em dash 
    $find[] = 'â€"'; // en dash 
    $replace[] = '"'; 
    $replace[] = '"'; 
    $replace[] = "'"; 
    $replace[] = "'"; 
    $replace[] = "..."; 
    $replace[] = "-"; 
    $replace[] = "-"; 

    return(str_replace($find, $replace, trim($some_var))); 
} 

////////////////////////////////////////////////////////////////////////////////// 
// FUNCTION:  strip_accents 
// DESCRIPTION: Used to replace all characters shown below 
////////////////////////////////////////////////////////////////////////////////// 
function strip_accents($some_var){ 
    return strtr($some_var, 'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ','aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY'); 
} 

////////////////////////////////////////////////////////////////////////////////// 
// FUNCTION:  clean_text 
// DESCRIPTION: Used to replace all characters but the below 
////////////////////////////////////////////////////////////////////////////////// 
function clean_text($some_var){ 
    $new_string = ereg_replace("[^A-Za-z0-9:/.' @-]", "", strip_accents(trim($some_var))); 
    return $new_string; 
} 

////////////////////////////////////////////////////////////////////////////////// 
// FUNCTION:  clean_url 
// DESCRIPTION: Strips all non alpha-numeric values from a field and formats the 
//    variable into a URL friendly variable 
////////////////////////////////////////////////////////////////////////////////// 
function clean_url($var){ 
    $find[] = " "; 
    $find[] = "&"; 
    $replace[] = "-"; 
    $replace[] = "-and-"; 

    $new_string = preg_replace("/[^a-zA-Z0-9\-s]/", "", str_replace($find, $replace, strtolower(strip_accents(trim($var))))); 
    return($new_string); 
} 

////////////////////////////////////////////////////////////////////////////////// 
// FUNCTION:  post_cleaner 
// DESCRIPTION: Another scrubber to remove tags and clean post data 
////////////////////////////////////////////////////////////////////////////////// 
function post_cleaner($var, $max = 75, $case="default"){ 
    switch($case): 
    case "email": 
     break; 

    case "money": 
     $var = ereg_replace("[^0-9. -]", "", strip_accents(trim($var))); 
     break; 

    case "number": 
     $var = ereg_replace("[^0-9. -]", "", strip_accents(trim($var))); 
     break; 

    case "name": 
     $var = ereg_replace("[^A-Za-z0-9/.' @-]", "", strip_accents(trim($var))); 
     $var = ucwords($var); 
     break; 

    default: 
     // $var = trim($var); 
     // $var = htmlspecialchars($var); 
     // $var = mysql_real_escape_string($var); 
     // $var = substr($var, 0, $max); 
     $var = substr(clean_text($var), 0, $max); 
    endswitch; 

    return $var; 
} 

을이 텍스트를 청소하는 여러 가지 방법 중 몇 가지입니다. 당신이 그것에서 원하는 것을 가져 가라. 그것이 도움이되기를 바랍니다. 당신이셨어요

관련 문제