2012-05-06 18 views
1

XMLストリーム内の一部の特殊文字は、破損することがあります。そのようなストリームに挿入したいデータを消毒する必要があります。そのため、1)破損しません。2)印刷可能なUTF-8文字がそのまま使用できます。XMLで使用するUTF-8文字列の印刷不可能な文字を取り除きます。

また、出力を生成するとすぐに出力をフラッシュする必要があります。そうしないと、RAMにたくさんのものを保存する必要があります。

今のところ、私はそれがない印刷可能な文字のほとんどを除去し

$return = preg_replace('/[^\p{L}\s]/u', '', $return); 

ような何かを行うことはなく、それらのすべて。私は、この問題の原因となっている文字を特定しようとしているのが難しいですが、そのうちの1つに遭遇すると、端末は "1; 2c"を返します。

これらの醜い文字をすべて削除する方法はありますか?あなたは正しい道にしていることをわからない

+0

http://coffeerings.posterous.com/php-simplexml-andを使用して印刷可能な文字にバイナリデータを変換します-cdata – Eugene

答えて

2

...

1)なぜあなたはテキストベースのフォーマットで印刷不可能な(バイナリ?)のデータを転送したいですか?

2)CDATAは

<node><![CDATA[ugly characters]]></node> 

3に役立ちますかどうかを確認してください)はbase64で

<node><?php echo base64_encode($uglyCharacters); ?></node> 
+0

こんにちは、CDATAはすでにありました。私はbase64でエンコードされていない "生の"データを出力しなければなりません。 しかし、私は修正する必要があります。私は、各単語の文字を個別に切り捨てて、それらのすべてをまとめていた。私はコードをグレープして1つの単語+最終出力作品を掲載した。私はどのように、それが動作するのか分からない...;) – cedivad

関連する問題