投稿者 メッセージ
<  PHPプログラミング  ~  [質問] SimpleXMLでのparser errorの対処方法
ゲスト
投稿1時間: 火 12月 13, 2005 12:25 pm  引用






はじめまして。
このサイトでXAMPPを知り、ローカルで勉強がてらamazonウェブサービスを利用するアプリを書いています。
その中で SimpleXMLを使用しようと思っていたのですが、parser errorが発生することがあり対処できずにいます。
原因や対処などご存知の方がおられましたらお教えください。

例えば、以下のコードを実行すると、simpleXML_load_fileの行でparser errorがでます。
(phpコードの保存は UTF-8で行っています。)
Code:

<?php
$keyword = "む";
$baseurl = "http://webservices.amazon.co.jp/onca/xml".
   "?Service=AWSECommerceService".
   "&Operation=ItemSearch&Keywords=";
$filename= $baseurl.urlencode($keyword);
print $filename. '<br/>';

$xml=simpleXML_load_file( $filename );
?>


Warning表示の抜粋は次のとおりです。
Code:

parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xE3 0x82 0x5F 0x22

「む」の文字コードは 0xE3,0x82,0x80であり、アマゾンからのレスポンスの一部に含まれます。
見た限りでは正常な文字コードで返ってきているように見えるのですが、parser errorとなります。
どうも、文字コード内に0x80を含むものが怪しい模様です。

[実行環境・設定]
XAMPP version 1.5.0-pl1 (WindowsXP), PHP 5.0.5
Code:

   mbstring.language = Japanese
   mbstring.internal_encoding = UTF-8
   mbstring.http_input = auto
   mbstring.http_output = UTF-8
   mbstring.encoding_translation = On
   mbstring.detect_order = auto
   mbstring.substitute_character = none;
   mbstring.func_overload = 0


以上、アドバイスよろしくお願いします。
トップに移動
a
投稿1時間: 水 12月 14, 2005 10:41 am  引用
ゲスト





simpleXMLのバグかもしれませんね。
他のpearモジュールなどで試してみましょう。
トップに移動
ゲスト
投稿1時間: 金 12月 16, 2005 11:15 pm  引用






レスありがとうございます。

原因究明の前に、XAMPPのベータ版を入れて試したところ、質問の現象は発生しなくなりました。

とりあえずコードを走らす分には問題がなくなり自己満足しています。
環境を戻すようなことになれば、そのときに改めて調べるようにします。
トップに移動
特定期間内の記事を表示:   
All times are GMT +9:00

次のトピックを表示
前のトピックを表示
Page 1 of 1
フォーラム一覧  ~  PHPプログラミング

トピックの新規投稿   返信


 
移動先:  

新規投稿: 不可
返信: 不可t
自分の記事の編集: 不可
自分の記事の削除: 不可
投票への参加: 不可




Powered by phpBB
customized by phpspot.