首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLI CURL -> PHP CURL

CLI CURL -> PHP CURL
EN

Stack Overflow用户
提问于 2011-07-19 23:08:00
回答 3查看 2.1K关注 0票数 3

我如何翻译这个curl命令,使其在PHP脚本中工作?

代码语言:javascript
复制
curl --request POST --data-binary '@import.xml' --header "Content-Type: application/atom+xml" --header "Content-Length: 378" "http://url.com"

这不起作用:

代码语言:javascript
复制
$data = array('file'=>$filename);                    

    $headers = array(
        'Content-Type: application/atom+xml',
        'Content-Length: 378'
    );

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'httpL//url.com');
curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  
curl_exec($ch);
EN

回答 3

Stack Overflow用户

发布于 2011-09-10 04:21:16

试试这个:

代码语言:javascript
复制
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/atom+xml'
    ));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'http://siteurl.com');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents($filename));  
curl_exec($ch);
票数 4
EN

Stack Overflow用户

发布于 2011-07-20 06:53:27

正确的做法是将文件读入一个字符串,然后将该字符串提供给CURLOPT_POSTFIELDS选项。读入字符串的功能不是由libcurl提供的,而是由命令行客户端完成的,我认为PHP/CURL绑定没有提供相同的功能。

命令行使用--data- CURLOPT_POSTSFIELDS,它对应于带有字符串的二进制,而不是散列数组,因为数组会将post转换为多部分post (命令行对-F,--form执行此操作)。此外,设置为POST的自定义请求完全是多余的。

通常,使用"--libcurl test.c“运行命令行是使用C API获得C程序的第一个草案版本的好方法,但由于PHP API非常相似,因此在大多数情况下应该可以作为良好的开始。

编辑:自定义更改/提供"Content-Length:“标头从来都不是一个好主意,除非你非常清楚自己在做什么。libcurl将始终提供一个根据您传递给它的数据生成的库。

票数 0
EN

Stack Overflow用户

发布于 2011-07-19 23:36:51

代码语言:javascript
复制
$data = array('file'=> '@' . $filename);                    

你需要在文件名前面加上一个'@‘来告诉CURL它实际上是一个文件名,而不仅仅是一个字符串。头部也不是必需的,因为CURL会自己填充它们。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6749431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档