当前位置: 首页 > 面试题库 >

用PHP和CURL发布多维数组

晏树
2023-03-14
问题内容

我无法通过CURL将表单数据发布到位于不同主机上的接收PHP脚本。

我得到一个Array to string conversion错误

这是print_r我要发布的数组:

Array
(
    [name] => Array
    (
        [0] => Jason
        [1] => Mary
        [2] => Lucy
    )
    [id] => 12
    [status] => local
    [file] => @/test.txt
)

这是发生错误的行:

curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post);

第三个参数 必须 是一个数组,因为在通过同一数组发送文件时,我需要将Content-Type标头设置multipart/form- data为该数组,因此无法将数组转换为查询字符串或使用http_build_query()

另外,我无法访问接收主机上的代码,因此无法序列化和反序列化数组。

我假设 名称 键的值是数组是导致此错误的原因,我还假设它CURLOPT_POSTFIELDS不支持多维数组。还有其他解决方法还是我注定要失败?

提前致谢!


问题答案:

您必须手动构建POST字符串,而不是传递整个数组。然后,您可以使用以下命令覆盖curl的自动选择内容标头:

curl_setopt($c, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));

序列化/ json-ifying会更容易,但是正如您所说,您无法控制接收端,因此您需要做一些额外的工作。



 类似资料:
  • 输出为 所以,即使在我自己的服务器上,我也没有得到正确的数据,它是空数组。我想通过http://docs.shopify.com/api/customer#create使用json实现REST

  • 问题内容: 如何使用HttpURLConnection发布JSON数据?我正在尝试: 我在第14行中收到编译错误。 cURL请求为: 这是处理cURL请求的方法吗?任何信息对我都会非常有帮助。 谢谢。 问题答案: OutputStream希望使用字节,并且您要向其传递字符。试试这个:

  • 问题内容: 我正在为一个需要从链接单击自动登录的客户端项目。 我正在使用握手页面通过以下代码执行此操作: 这很好。这让我非常高兴。 问题是我相信WordPress可以将URL锁定。 详细地说,我的握手页面(登录到我的页面)在“ blog”目录中,而我的WordPress应用程序在“ wordpress”目录中,该目录位于“ blog”目录中。浏览器中的URL说。但是,它在浏览器窗口中具有WordP

  • 问题内容: 我正在存储Facebook用户ID和访问令牌。我可以将此信息发布到所选用户的留言墙上吗?在这里可以找到以下代码:http : //developers.facebook.com/docs/reference/api/post/ 我只是不确定如何用php运行它。 问题答案:

  • 大多数成熟的项目都平行的维护多个发布线。例如,1.0.0发布后,该发布线会继续微小发布1.0.1,1.0.2等等,直到项目明确的决定终止这条线。请注意,仅仅因为发布了1.1.0不足以终止1.0.x线。例如,一些用户会制定某类政策,永远不升级到较新的次要或主要版本的第一个发布—他们希望其他人能将bug试验出来,例如1.1.0,那么就等待1.1.1。这不一定是自私(请牢记,他们也放弃了bug修正和新特

  • 主要内容:实例,实例,三维数组,实例多维数组是包含一个或多个数组的数组。 在多维数组中,主数组中的每一个元素也可以是一个数组,子数组中的每一个元素也可以是一个数组。 一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组,依照这种方式,我们可以创建二维或者三维数组。 二维数组语法格式: 以上数组的元素会自动分配键值,从 0 开始: 实例 <?php // 二维数组: $cars = array ( array ( " Vol