【问题标题】:how to send xml file to server backend using php? [duplicate]如何使用 php 将 xml 文件发送到服务器后端? [复制]
【发布时间】:2013-03-21 00:51:30
【问题描述】:

我已使用此代码从服务器获取数据,`$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 方法是唯一的方法,或者是否有任何其他方法可以做到这一点。举个例子吧。

【问题讨论】:

  • 在cURL中发送和接收数据是完全一样的。因为当您从服务器获取数据时,您首先是在发送请求。唯一的区别是发送和接收的数据..
  • 所以如果它是相同的,那么我必须做些什么改变?因为我用谷歌搜索它并得到了你分享的同样的东西,我尝试了同样的东西,但没有得到我想要的输出,所以如果你使用相同的,那么你能建议我需要做哪些改变才能达到适当的结果?
  • 几分钟后查看我的答案

标签: php xml curl xmlhttprequest


【解决方案1】:

使用 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 不包含用户数据(但是:有可能),但 $response 更有可能包含结果。 ok textresponse、json/xml 响应或“200 OK”标头响应

基本上都是一样的。使用 cURL 获取/发送数据没有区别。这一切都基于发送请求,并且在大多数情况下对结果进行处理。

【讨论】:

  • 您向我解释我的问题的方式似乎我用于获取数据的代码也用于插入数据,但我必须显示的打印部分将发生变化。跨度>
  • 完全正确 :) 有什么需要解释的吗?
  • 我理解这个概念,但我仍然面临问题,但那是因为我使用的服务器,我的方法和方法是正确的..顺便说一句,谢谢你解决我的问题.. :)
  • 我的问题解决了。:)
猜你喜欢
  • 2023-03-06
  • 1970-01-01
  • 2013-10-29
  • 2011-08-26
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多