【问题标题】:sending xml response when a url is hit in php在 php 中点击 url 时发送 xml 响应
【发布时间】:2026-02-03 14:05:03
【问题描述】:

我想在使用 http://gmail.com/cb/send/send.php?user_name=admin1&password=test123&subscriber_no=1830070547&mask=Peter&sms='Test SMS' 等参数点击 url 时发送 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);
 ?>

用户会对此回声产生共鸣吗?

【问题讨论】:

    标签: php xml response


    【解决方案1】:

    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);
    

    【讨论】:

    • 非常感谢您的及时回复。
    【解决方案2】:

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

    在 php 中这应该可以完成工作:

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

    【讨论】:

    • 看不懂,请根据我的场景详细解释一下。
    • 如果您回显您的 $controller->sendResponse($type,$cause) (顺便说一句,您必须回显它,否则它只会生成但不会打印)它不会意味着客户端知道您发送的内容.. 大多数时候它需要文本或 html!所以你只需要告诉你的内容是什么;)
    最近更新 更多