1

XMLストリーム内の一部の特殊文字は、それを壊す可能性があります。このようなストリームに挿入するデータをサニタイズして、1)破損しないようにする必要があります。2)印刷可能なUTF-8文字が機能し続けるようにします。

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

今のところ、私は次のようなことをします

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

印刷できない文字のほとんどを削除しますが、すべてを削除するわけではありません。この問題の原因となっている文字を特定するのに苦労していますが、そのうちの1つに遭遇すると、端末は「1;2c」を返します。

これらの醜いキャラクターをすべて取り除くためのより良い方法はありますか?

4

1 に答える 1

2

あなたが正しい道を進んでいるかどうかわからない...

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

2.) CDATA が役立つかどうかを確認する

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

3.) base64 を使用してバイナリ データを印刷可能な文字に変換する

<node><?php echo base64_encode($uglyCharacters); ?></node>
于 2012-05-06T14:35:19.493 に答える