在php中命中网址时发送xml响应

时间:2012-11-20 10:16:56

标签: php xml response

我想在使用http://gmail.com/cb/send/send.php?user_name=admin1&password=test123&subscriber_no=1830070547&mask=Peter&sms='测试短信'等参数点击网址时发送xml响应

如果有人点击此链接,则会给出响应

 public function sendResponse($type,$cause) {
    $response = '<?xml version="1.0" encoding="utf-8"?>';
    $response = $response.'<response><status>'.$type.'</status>';
            $response = $response.'<remarks>'.$cause.'</remarks></response>';
            return $response;
 }

我从我的控制器文件调用此方法,只是回显值。 击球手会得到这个回应吗?

<?php
......
......
  echo $sendResponse($type,$cause);
 ?>

用户会通过这种回声得到共鸣吗?

2 个答案:

答案 0 :(得分:10)

return不会向客户发送任何内容。如果您回显sendResponse()的结果,那么客户端将收到XML:

echo sendResponse($type,$cause);

注意我从sendResponse调用中删除了$ - 如果你使用$,PHP会认为它是一个变量。

建议添加一个标头来告诉客户端正在发送XML和编码,但这对于传输XML并不重要:

header("Content-type: text/xml; charset=utf-8");

在声明XML标头后,您可以使用连接字符.

 public function sendResponse($type,$cause) {

    $response = '<?xml version="1.0" encoding="utf-8"?>';
    $response .= '<response><status>'.$type.'</status>';

            $response = $response.'<remarks>'.$cause.'</remarks></response>';
            return $response;
 }

 ....
 ....

 header("Content-type: text/xml; charset=utf-8");
 echo sendResponse($type,$cause);

答案 1 :(得分:5)

您只需在脚本中指定一些标题,告诉浏览器/客户端正确处理此内容!除此之外,你必须连接而不是重新分配你的$ response var;)

在php中,这应该可以胜任:

header("Content-type: text/xml;charset=utf-8");