PHP を使ったXMLレスポンス

すごく簡単なことだけど、長い時間詰んでしまったので書く。

例えば、Twitterで検索をする場合、

http://search.twitter.com/search.atom?q=文字列

を送信すると、qにセットされた文字列が検索されて、XML(atom)で返ってくる。

そこで実際にクライアントがサーバーにデータを送り、サーバーがXMLで返し、クライアントで受信するという仕組みを作ってみようとした。
クライアントが cmd=search&q= をサーバーへ投げると、その処理結果がXMLで返ってくるというものだ。

<?php
 echo <?xml version="1.0" encoding="UTF-8"?>';
 echo "<return>";
 if($_GET['cmd'] == "search"&&isset($_GET['q'])) {
  //処理
  echo "<res>結果</res>";
 }
 echo "</return>";
?>

結果: 失敗。

ブラウザで開いてみると上手く動かない!
足りないのは、XMLのヘッダ宣言だった。つまり先頭に書いて、

<?php
 header("Content-Type: application/xml; charset=UTF-8");
 echo <?xml version="1.0" encoding="UTF-8"?>';
 echo "<return>";
 if($_GET['cmd'] == "search"&&isset($_GET['q'])) {
  //処理
  echo "<res>結果</res>";
 }
 echo "</return>";
?>
?>

とすれば良いだけだった。こんなミスに気が付かなくて12時間も考えてしまったわーい

後は、宣言とかの上に空欄が空いてるとだめです。

ケアレスミスを無くそうね!

Atsumi3

したいことをします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください