5

http://gmail.com/cb/send/send.php?user_name=admin1&password=test123&subscriber_no=1830070547&mask=Peter&sms='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);
 ?>

ユーザーはこのエコーによって共鳴しますか?

4

2 に答える 2

14

return単独ではクライアントに何も送信しません。yesの結果をエコーする場合sendResponse()、クライアントは XML を受け取ります。

echo sendResponse($type,$cause);

$sendResponse 呼び出しからを削除したことに注意して$ください。.

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);
于 2012-11-20T10:21:53.227 に答える
6

ブラウザ/クライアントにこのコンテンツを適切に処理するように指示するスクリプト内のヘッダーを指定するだけです! それ以外は、 $response 変数を再割り当てするのではなく、連結する必要があります;)

PHPでは、これでうまくいくはずです:

header("Content-type: text/xml;charset=utf-8");  
于 2012-11-20T10:19:37.370 に答える