- 締切済み
GXmlHttpにPHPからXMLを渡したい。
グーグルマップで、MYSQLから取得したデータを表示したいと考えています。 GXmlHttpを使ってphpのデータを取得するプログラムを組んだのですが、phpファイルでうまくデータを取得できません。 data.php -------------------------------------------------------- <?php mb_http_output('utf-8'); header('Content-type: text/xml; charset=utf-8'); echo '<?xml version="1.0"?>'; echo("<markers>"); $con=mysql_connect("**********","***","*****"); $selectdb=mysql_select_db("***",$con); $sql = "select * from map"; $result=mysql_query($sql,$con); while ($row=mysql_fetch_array($result)) { //緯度・経度を取得 $x = $row[x]; $y = $row[y]; //場所名 $basyo = $row[basyo]; echo("<marker lat=\"$x\" lng=\"$y\" html=\"$basyo\"/>"); } echo("</markers>"); ?> -------------------------------------------------------- というプログラムなのですが、 -------------------------------------------------------- テキストの内容に無効な文字が見つかりました。リソース 'http://www.********.com/map/joho.php' の実行エラーです。ライン 1、位置 74 <?xml version="1.0"?><markers><marker lat="36.6585" lng="138.7413" html=" -------------------------------------------------------- とエラー表示されてしまいます。 ちなみに、緯度・経度のみのデータ取得ならうまく表示されました。 ということは、「$basyo」が漢字を使う日本語だからなのでしょうか? このような場合、どうすればうまくデータベースからデータを取得できるのでしょうか? どうかよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- fdsjaklfjas
- ベストアンサー率81% (96/118)
echo("<marker lat=\"$x\" lng=\"$y\" html=\"$basyo\"/>"); の前に、 $basyo = mb_convert_encoding($basyo, mb_internal_encoding(), "auto"); を入れてみてください。それでもダメですか?
- fdsjaklfjas
- ベストアンサー率81% (96/118)
推測ですが、data.phpの出力がUTF-8に変換されていないことが原因のように思います。 ブラウザのアドレスバーに、直接data.phpのURLを入力して下さい。文字化けせずに、正常に表示されますか? ブラウザ(IE)の、表示>エンコードと合せて確認してみてください。 UTF-8で、データが出力されていないのであれば、 mb_http_output("UTF-8"); ob_start("mb_output_handler"); header('Content-type: text/xml; charset=utf-8'); ・・・ のようにしたらどうでしょう。
お礼
お返事ありがとうございます。 >UTF-8で、データが出力されていないのであれば、 >mb_http_output("UTF-8"); >ob_start("mb_output_handler"); >header('Content-type: text/xml; charset=utf-8'); >・・・ >のようにしたらどうでしょう。 data.phpを上のように変えるとデータベースから$basyoの部分が表示されるようになりました。 ただ、?ばっかりで文字化けしています。 問題はデータベースはja-sjisとしているからでしょうか? こも文字化けを解決する方法はあるでしょうか? また、data.phpにアクセスするとやはりエラー画面でした。 -------------------------------------------------------- 要求したスペースが見つかりません。リソース 'http://www.********.com/map/joho.php' の実行エラーです。ライン 1、位置 90 <?xml version="1.0"?><markers><marker lat="36.6585" lng="138.7413" html="????a?J??? /><marker ... --------------------------------------------------------- と、内容がすこし変わったのですが・・・ 解決方法があればご教授ください。 よろしくお願いします。