2012-03-13 11 views
-3

likeのようなこれらの不要な文字を削除するにはどうしたらいいですか?これらの不要な文字をPHPを使って削除します

私は既に文字エンコードをutf-8に設定していますが、まだこれらの文字が表示されています。

単語からテキストをコピーしてTinyMCEに貼り付けた場合、不要な文字はdbに保存される前に表示されません。 dbから保存してフェッチすると、不要な文字が表示されます。

相続人は、フィルタリングのための私の現在のコード:

$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

それはその文字エンコーディングが適用されるものに欠けているに文字エンコーディングを設定している

。それは出力ですか?それは文字列そのものですか(どこかの文字列があるはずです)?それは入力ですか?

あなたのコードを共有して、これを引き起こしていることを明確にし、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; 
} 

これは単なるテキストをきれいにする多くの方法のいくつかである。あなたはそれから欲しいものを取る。それがお役に立てば幸いです。あなたが手に入れた

関連する問題