将php函数放入XML请求中

将php函数放入XML请求中,php,function,simplexml,Php,Function,Simplexml,我试图将while循环的结果添加到xml请求中。但是它没有正确地显示。。下面我首先创建一个函数,然后尝试使该函数在xml请求curl标记中工作。很难解释,也很容易看出: //Getting room groups function roomGroups(){ $i = 2; while(isset($_GET['ad'.$i])) { $adult = $_GET['ad'.$i];

我试图将while循环的结果添加到xml请求中。但是它没有正确地显示。。下面我首先创建一个函数,然后尝试使该函数在xml请求curl标记中工作。很难解释,也很容易看出:

 //Getting room groups
    function roomGroups(){
    $i = 2;
            while(isset($_GET['ad'.$i]))
            {
                $adult = $_GET['ad'.$i];
                $child = $_GET['ch'.$i];
                $childAge = $_GET['ch'.$i];
                echo "<RoomGroup><Room><numberOfAdults>".$adult."</numberOfAdults><numberOfChildren>".$child."<childAges>".$childAge."</childAges></Room></RoomGroup>"; 
                $i++; 
                }}                  
    //Room availablility Request
    $ch1 = curl_init(); 
    $fp1 = fopen('room_request.xml','w'); 
    curl_setopt($ch1, CURLOPT_URL, "http://api.ean.com/ean-services/rs/hotel/v3/avail?cid=379849&minorRev=13&apiKey=4sr8d8bsn75tpcuja6ypx5g3&locale=en_US&currencyCode=USD&customerIpAddress=67.20.125.193&customerUserAgent=Mozilla/5.0+(Windows+NT+6.1)+AppleWebKit/535.11+(KHTML,+like+Gecko)+Chrome/17.0.963.79+Safari/535.11&customerSessionId=0ABAA856-8502-E913-6982-E2210F904B72&xml=<HotelRoomAvailabilityRequest><hotelId>".$hid."</hotelId><arrivalDate>".$arrivalDate."</arrivalDate><departureDate>".$departingDate."</departureDate><RoomGroup><Room><numberOfAdults>".$adults."</numberOfAdults><numberOfChildren>".$children."</numberOfChildren><childAges>".$ages."</childAges></Room></RoomGroup>".roomGroups()."<includeDetails>true</includeDetails></HotelRoomAvailabilityRequest>");  
    curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch1, CURLOPT_HTTPHEADER, array('Accept: application/xml'));
    curl_setopt($ch1, CURLOPT_HEADER, 0); 
    curl_setopt($ch1, CURLOPT_FILE, $fp1); 
    $val1 = curl_exec($ch1); 
    curl_close($ch1);//Close curl session 
    fclose($fp1); //Close file overwrite 
    $avail = simplexml_load_file('room_request.xml');

//The url that is passing the data looks like this: /hotel_request.php?hid=370111&d=05/02/2012&a=04/30/2012&r=3&ad2=2&ch2=22=16,17,&ad3=3&ch3=33=7,13,16,&
//获取房间组
功能组(){
$i=2;
while(isset($\u GET['ad'.$i]))
{
$maintal=$_GET['ad.$i];
$child=$_GET['ch.$i];
$childAge=$_GET['ch.$i];
回声“$成人“,$儿童“,$儿童年龄。”;
$i++;
}}                  
//房间可用性请求
$ch1=curl_init();
$fp1=fopen('room_request.xml','w');
curl_setopt($ch1,CURLOPT_URL,”http://api.ean.com/ean-services/rs/hotel/v3/avail?cid=379849&minorRev=13&apiKey=4sr8d8bsn75tpcuja6ypx5g3&locale=en_US¤cyCode=USD&customerIpAddress=67.20.125.193&customerUserAgent=Mozilla/5.0+(Windows+NT+6.1)+AppleWebKit/535.11+(KHTML,+like+Gecko)+Chrome/17.0.963.79+Safari/535.11&customerSessionId=0ABAA856-8502-E913-6982-E2210F904B72&xml=“.hid.”“$arrivalDate.”“$DearingDate.”“$Date.”“$成人“.”“$children.”“$ages.”“.roomGroups”(.true”);
curl_setopt($ch1,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch1,CURLOPT_HTTPHEADER,数组('Accept:application/xml');
curl_setopt($ch1,CURLOPT_头,0);
curl_setopt($ch1,CURLOPT_文件,$fp1);
$val1=curl_exec($ch1);
旋涡关闭($ch1)//闭卷会话
fclose(1 FP)//关闭文件覆盖
$avail=simplexml\u load\u文件('room\u request.xml');
//传递数据的url如下所示:/hotel_request.php?hid=370111&d=05/02/2012&a=04/30/2012&r=3&ad2=2&ch2=22=16,17,&ad3=3&ch3=33=7,13,16&
我没有得到任何回报。在此方面的任何帮助都将不胜感激

roomGroups()
不会
返回任何内容,它只是
回送到屏幕上

试着这样做:

function roomGroups(){
    $i = 2;
    $ret = '';
    while(isset($_GET['ad'.$i])){
        $adult = $_GET['ad'.$i];
        $child = $_GET['ch'.$i];
        $childAge = $_GET['ch'.$i];
        $ret .= "<RoomGroup><Room><numberOfAdults>".$adult."</numberOfAdults><numberOfChildren>".$child."<childAges>".$childAge."</childAges></Room></RoomGroup>"; 
        $i++; 
    }
    return $ret;
}
function-roomGroups(){
$i=2;
$ret='';
while(isset($\u GET['ad'.$i])){
$maintal=$_GET['ad.$i];
$child=$_GET['ch.$i];
$childAge=$_GET['ch.$i];
$ret.=“.$maintal.”“$child.”“$childAge.”;
$i++;
}
返回$ret;
}

我没有跟踪。您正在将xml回显到浏览器,对吗?它是如何进入room_request.xml的?发生在我们当中最好的人身上:-P