  | 
              
	              
	                
  
    
	 
        สอบถามเรื่อง ส่งค่า XML ด้วย CURL PHP   แล้วรับค่าได้น่ะครับ แต่เอาไปใช้ใน Function simplexml_load_string ไม่ได้อ่ะ     | 
   
  
    |   | 
   
 
 
 
	
		
			  | 
	   | 
	    | 
		
			  | 
	 
	
		
			  | 
		 		   | 
	  	    
          
            
			
	
			
			 
                ไฟล์ ส่ง ข้อมูล 
Code (PHP) 
<?php
/*config*/
	$checkin="20140421";
	$duration="1";
	$city_code="BKK";
	$service_code="";
	$nbradults="1";
	$nbrchildren="0";
	$countryname = "Thailand";
/*------*/
	
	$loginparam = Login_infos($countryname);
$xml_rates='<?xml version="1.0" encoding="utf-8"?>
                  <FTSXML_FAH>
					<VERSION>1.0</VERSION>
					<USER_TOKEN>token</USER_TOKEN>
						<LOGIN_INFO>
							<SYSTEM>'.$loginparam[0].'</SYSTEM>
							<OPERATOR>'.$loginparam[1].'</OPERATOR>
							<POS>'.$loginparam[2].'</POS>
							<AGENCY>'.$loginparam[3].'</AGENCY>
							<PASSWORD>'.$loginparam[4].'</PASSWORD>
						</LOGIN_INFO>
						<SEARCH>
							<FLAGS>
								<RETURNWHEN>R</RETURNWHEN>
								<PRICEDONLY>Y</PRICEDONLY>
								<SHOWROOMS>Y</SHOWROOMS>
								<SHOWBREAK>Y</SHOWBREAK>
							</FLAGS>
							<FORWHOM>
								<FORAGENCY>'.$loginparam[5].'</FORAGENCY>
								<FORCOUNTRY />
							</FORWHOM>
							<SORT>P</SORT>
							<CURRENCY>THB</CURRENCY>
							<STAYPERIOD>
								<CHECKINDATE>'.$checkin.'</CHECKINDATE>
								<DURATION>'.$duration.'</DURATION>
							</STAYPERIOD>
							<CITY>'.$city_code.'</CITY>
							<HOTELPARAMS>
								<SERVICE>'.$service_code.'</SERVICE>
								<SUBSERVICE>---</SUBSERVICE>
							</HOTELPARAMS>
							<ROOMS>
								<ROOM>
								<QUANTITY></QUANTITY>
								<ADULT_NO>'.$nbradults.'</ADULT_NO>
								<CHILD_NO>'.$nbrchildren.'</CHILD_NO>
								</ROOM>
							</ROOMS>
						</SEARCH>
					</FTSXML_FAH>';
 print_r($xml_rates);
 echo "<BR>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.xxx.travel/admin/xml/xml.php");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_rates);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
echo $result = curl_exec($ch);
curl_close($ch);
?>
 
 
 
 
ไฟล์รับข้อมูล  
 
Code (PHP) 
<?php
print_r($_REQUEST);
$xml=simplexml_load_string($_REQUEST);
print_r($xml);
?>
  
 
 
ตอนนี้ได้ผลดังนี้ 
 
Array ( [ "1.0" encoding="utf-8"?> 1.0 token XAS BC B2C ATTB2C bc R Y Y Y ATTB2C P THB 20140421 1 BKK --- 1 0 )  << print_r ของ $_REQUEST ไฟล์รับข้อมูล แต่ print_r (simplexml_load_string) มันไม่แสดงผลเลย ต้องทำไงหรอคัรบ
 
 
  Tag : PHP               
                        | 
           
          
            | 
			
                             | 
           
          
            
              
                   | 
                   | 
                   | 
               
              
                   | 
                
                    
                      | Date :
                          2014-04-17 09:47:59 | 
                      By :
                          nut | 
                      View :
                          1526 | 
                      Reply :
                          2 | 
                     
                  | 
                   | 
               
              
                   | 
                   | 
                   | 
               
              | 
           
          
            | 
			 | 
           
         
	    
		             | 
		
			  | 
	 
	
		
			  | 
		  | 
		
			  | 
		
			  | 
	 
 
              
  
          
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 cast object to string 
 
Code (PHP) 
$xml = simplexml_load_string( (string)$_REQUEST);
  
 
หรือ 
 
ใช้ simplexml_load_file() 
 
 
ตรวจสอบตอนส่งด้วย 
Code (PHP) 
echo simplexml_load_string($result);
  
 
การดัก error 
Code (PHP) 
libxml_use_internal_errors(true);
$xml=simplexml_load_string($_REQUEST); //or simplexml_load_file
foreach( libxml_get_errors() as $error ) {
    print_r($error);
}
                        
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2020-05-30 17:12:27              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2020-05-30 17:11:52 | 
                        By :
                            PhrayaDev | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ตัวส่ง เขียนให้ชัดเจน 
Code (PHP) 
$fields_string = http_build_query(['xml'=>$xml_rates]);  // สำคัญบันทัดนี้ ใช้ function ของ php ช่วย
curl_setopt($ch, CURLOPT_POST,       1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
  
 
ตัวรับก็ใช้ $_POST['xml']; เป็น string 
 
ปล. ทำความเข้าใจกับชนิดตัวแปร ให้ดี  
อันไหนเป็น แค่ string ธรรมดา อันใช้ เป็น object array 
 
print_r($xml_rates); อันนี้เหมาะกับ array 
echo $xml_rates; อันนี้เหมาะกับ string 
 
print_r( $_request) มันได้อะไรมา มองให้ออก 
 
ประกาศตัวแปรเป็นแค่ text literal ธรรมดา ไม่ต้องใช้ print_r                        
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2020-05-30 18:20:11              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2020-05-30 18:16:37 | 
                        By :
                            Chaidhanan | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
      		  
	
     | 
   
 
                 |