sending xml response when a url is hit in php

php, response, xml

Solution

`return` alone won't sending anything to the client. If you are echoing the result of `sendResponse()` then yes, the client will receive the XML:

echo sendResponse($type,$cause);

Notice I removed the `$` from the sendResponse call - PHP will assume it's a variable if you use the `$`.

It's recommended to add a header to tell the client that XML is being sent and the encoding, but it's not essential for the transport of the XML:

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

You can use the concatenation character `.` after you declared the XML header:

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

Problem

I would like to send a xml response when a url is hit with parameters like http://gmail.com/cb/send/send.php?user_name=admin1&password=test123&subscriber_no=1830070547&mask=Peter&sms='Test SMS' When one will hit this link then a response will be given which will like ``` 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; } ``` I am calling this method from my controller file and just echo the value. will the hitter will get this response? ``` <?php ...... ...... echo $sendResponse($type,$cause); ?> ``` Will user will get resonse by this echo?

Original source