[PHP-users 23322]Re: SAX処理で不具合

Sumito_Oda oda @ bst.jp
2004年 9月 16日 (木) 18:25:16 JST


織田です。

>複数回呼ばれるっていうのはどうしてなのでしょうか?
>また、回避する方法があれば教えていただければ。。。

SAXパ−ザの仕様です。PHPで利用しているのは
既にあったSAXパ−ザをPHPに取り込んだものです。
仕様なので、回避するのではなく必要なら仕様に則した
コードを書くのが正解。

>それと書き損なっているのですが、cdatahandlerのなかで
>このようなことをやってます。これならEUCでもだめでしょうか?
>$data = mb_convert_encoding($text,"EUC-JP","auto");

利用している"SAXパーザの対応する文字コード"に関することなので
パースを掛ける前に対応するものに変換する必要があります。
「$data = fread($fp, 4096)」の部分とか。

各ハンドラから取得したデータを変換するのは、PHP側に適するように
戻す変換の方です。パースされて細切れになっているものなので
"auto"は止めといた方が良いでしょう。文字コードも判っていることだし。

-- 
Sumito_Oda mailto:oda @ bst.jp


PHP-users メーリングリストの案内