2012-04-04 5 views
0

まず、XMLファイルから文字列を取得しています。str_replaceに関する問題

私は置き換えるしようとしています特殊文字があります:私はそうのようなstr_replaceを使用する場合は '£'

は:

$ability1 = str_replace("£", "", $ability); 

これはショーをのvar_dumpものです:

一度
string(138) "Argothian Pixies can't be blocked by artifact creatures.�Prevent all damage that would be dealt to Argothian Pixies by artifact creatures." 

$ ability1が渡され、wordpressがそれを投稿に挿入します。これが結果です。

Argothian Pixies can’t be blocked by artifact creatures. 

文字の後にすべてを削除します。

なぜそれが ""であるべきなのかを£に変更するのはなぜですか?私は何が足りないのかよく分かりません

答えて

1

多分あなたの文字列はUTF-8ですか? PHP。あなたはこのような何かをしなければならないでしょう:

$ability1 = utf8_decode($ability); 
$ability1 = preg_replace("/[£ ]/","", $ability1); 
$ability1 = utf8_encode($ability1); 
+1

それはそれでした。私は先日そのことを読んだけど、それは私の心を崩していた、笑。 preg_replaceによってすべてが削除され、特殊文字だけが残されました。使用終了: $ ability1 = utf8_decode($ ability); $ ability1 = str_replace( "£"、 ""、$ ability1); $ ability1 = utf8_encode($ ability1); –

+0

申し訳ありません。式に「not」(^)がありました。 – fragmentedreality

+0

**使用法警告:**このコードは、データ損失を引き起こします。 – hakre

2

文字列が正しいエンコーディングを使用していることを確認してから、encodingまたはdecodingをUTF8に変換してstr_replaceを適用してください。

1

XMLファイルはどのようにエンコードされていますか?私はそれがUTF-8かもしれないと思う。その場合は、コード内で正しく処理するためにutf_decode()などの関数を参照する必要があります(コードがANSIであることを前提としています)。