2011-09-14 13 views
0

私はこれらの不正な文字を取り除きたい猫 ラット マット 脂肪これらの不正な文字を取り除く方法?

 アップル バット。あなたはいくつかの解決策を提案できますか?私はプログラミング言語としてPHPを使用しています。

これらは、MSの単語からHTMLページのtextareaに何かを貼り付けると表示されます。

+0

[[Deceze](http://stackoverflow.com/users/476/deceze)による[エンコーディングと文字セットについて知っておくべきこと](http://kunststube.net/encoding/) 。 – alex

+0

それは私が欲しいものではありません。範囲外のもの –

答えて

0

PHPはString replaceです。私はあなたが提出されたフォームデータを処理しようとしていると仮定し、これらの文字を削除するためにtextareaの値をサニタイズしたいと思います。あなただけのASCIIを抽出したい場合は

$retrievedAreaText = $_POST["textAreaId"]; 
$illegalChars = array("",); //others 
$retrievedAreaText = str_replace($illegalChars,"",$retrievedAreaText); 
//further processing 
+0

私はそれを認識しており、この解決策は2つの理由でいずれにしてもうまくいかない。 1)これは唯一の違法な文字ではありません。それはユーザーが単語ファイルからテキストエリアに貼り付けるので、どんなものでもかまいません。 2)テキストエディタ(Notepad ++)はこの文字を表示しません。 –

+0

(1)ので、他の不正な文字を配列に追加してください。 (2)so?あなたがブラックリストに載せようとしている文字を知っているなら、それを配列に入れます。テキストエディタで表示できない場合は、ASCII/Unicodeの値を参照してください。ホワイトリスト手法を採用したい場合は、許容可能な文字のホワイトリストを定義し、そのリストにないすべての値を置き換えます。 –

3

、その後、あなたはこれを試みることができる:

$string = preg_replace('/[^(\x20-\x7F)]*/','', $string);

+0

私はすでにGoogleとstackoverflowでそれを見つけましたが、うまくいきませんでした。したがって、投稿された質問 –

+0

私はそれをテストするときに動作します。いくつかのユニコード文字しか使用したくないですか? – whg

+0

それはあなたのために働くかもしれないが、私のために働いていない。 : 私の仕事は、単語ファイルのものをhtmlページのテキストエリアに貼り付けることです。 –

0

はこの1つに試してみて:

$string = htmlentities($string, ENT_COMPAT, "UTF-8"); 

それはへの特殊文字を変換し、あなたが望む標準の中で、 特別な文字はほとんどがトラブルであることが本当です。

希望すると、これが役に立ちます。

関連する問題