【问题标题】:Posting xml file data to a url将 xml 文件数据发布到 url
【发布时间】:2019-08-02 21:28:44
【问题描述】:

我有一个非常基本的 HTML 表单。当您点击提交时,它会创建一个包含表单数据的xml 文件。接下来我想做的是从创建的xml 文件中获取数据并将其发布到服务器。我所拥有的就是这样,但帖子中没有数据。

我对编程还很陌生,到目前为止我学到的所有东西都来自这个网站、书籍,而且主要是反复试验。任何帮助将不胜感激!

<?php

$ch = curl_init();

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_URL, 'http://192.168.4.4:51080/test/notify');

$postData = array(
    'data' => '@/Users/home/Desktop/test.xml',
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

$response = curl_exec($ch);

?>

这是我在服务器上收到的...

--------------------------d3712de4c2d492ec
Content-Disposition: form-data; name="data"

@/Users/home/Desktop/b.xml
--------------------------d3712de4c2d492ec--

【问题讨论】:

标签: php html xml


【解决方案1】:

欢迎来到 Stack Overflow,开始编程!

事实上,POST 中有 数据,而这些数据正是您要发布的内容。更改此行中一组或两组“单引号”之间的值以了解我的意思:

$postData = array(
    'data' => '@/Users/home/Desktop/test.xml',
);

换句话说,您的 POST 数据由一个元素组成,其键是“数据”,其值字面意思是“@/Users/home/Desktop/test.xml”。您显示的服务器输出正是向您展示了这一点。

我相信您想要的是该 XML 文件的 contents 是 POST 的内容。你有几个选择;以下是一些主要的:

  1. 只发布 XML 文件的原始内容。
  2. 像你一样发布一个单元素 POST 正文,但使用一个字符串,其值是 'data' =&gt; ... 右侧的文件内容
  3. 完全跳过创建 XML 文件,而是使用当前用于创建 XML 文件的数据元素填充结构化 POST 正文

对于#1,您需要以不同的方式发布;搜索“php 发送原始帖子数据”或类似内容。 PHP 的 curl_* 函数应该可以帮助您实现此选项。

对于#1 和#2,您必须阅读 XML 文件的内容。 PHP 具有读取文件的功能,并且文档齐全。搜索“PHP 文件读取”或类似内容。

(对于一般的编程学习,通过多次搜索,您可以添加“示例代码”并找到人们编写小型工作示例来说明特定编程任务的博客文章和其他指南。)

除非您有特定的理由通过 XML 交换信息,否则我推荐 #3。为了在服务器端使用数据,您需要从 XML 内部解压,那么为什么不直接从其中取出 XML,并在结构化的 POST 正文中传输数据呢?同样,也许拥有 XML 对于您的目标之一很重要,但要认识到 XML 只是组织数据的一种选择,还有其他选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2019-01-25
    相关资源
    最近更新 更多