如何使用PHP将xml文件发送到服务器后端?

时间:2013-03-30 11:46:27

标签: php xml curl xmlhttprequest

我使用此代码从服务器获取数据,`$ server ='LOCALHOST:9000';

$headers = array(
"Content-type: text/xml"
,"Content-length: ".strlen($requestXML)
,"Connection: close"
);

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $server);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXML);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);



if(curl_errno($ch)){
    print curl_error($ch);
    echo "  something went wrong..... try later";
}else{
echo " request accepted";
    print $data;
    curl_close($ch);
}`

现在我必须做反向,如何使用php将数据发送到服务器? curl方法是唯一的方法或是否有任何其他方法来做同样的事情。给我一些例子。

1 个答案:

答案 0 :(得分:0)

使用cURL发送/接收完全相同。 cURL基于将数据发送到给定URL并可能接收响应。我们来看一个获取用户和发送用户的简单示例。

获取用户

$data = array(
  'user_id' => 1
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.site.com/getUser.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
  • getUser.php只是搜索用户并返回找到的数据。
  • $ response可能包含用户的数据,也许只是包含该名称的文本响应。序列化的PHP数组,具有完整用户配置文件的XML响应等等。

插入/发送数据

$data = array(
  'user_name' => 'Joshua',
  'user_email' => 'my@email.com'
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.site.com/addUser.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
  • addUser.php对字段执行一些验证,如果验证,则在数据库中插入用户
  • 在这种情况下,
  • $ response不包含userdata(但是:这是可能的),但$ response包含结果的可能性更大。 ok文本响应,json / xml响应或者可能是'200 OK'标题响应

一切都基本相同。使用cURL获取/发送数据没有区别。这一切都基于发送请求,并且在大多数情况下会对结果做一些事情。