森栏
应该能正常工作。$data = array('name' => 'Ross', 'php_master' => true);// You can POST a file by prefixing with an @ (for <input type="file">
fields)$data['file'] = '@/home/user/world.jpg';$handle = curl_init($url);curl_setopt($handle, CURLOPT_POST, true);c
url_setopt($handle, CURLOPT_POSTFIELDS, $data);curl_exec($handle);curl_close($handle)我们有两个选择,CURLOPT_POST打开HTTP POST,并且CURLOPT_POSTFIELDS包含我们要提交的帖子数据的数组。这可用于将数据提交给POST <form>S.重要的是要注意curl_setopt($handle, CURLOPT_POSTFIELDS, $data);以两种格式获取$数据,这将决定如何对POST数据进行编码。$data作为array()*数据将作为multipart/form-data它并不总是被服务器所接受。$data = array('name' => 'Ross', 'php_master' => true);curl_setopt($handle, CURLOPT_POSTFIELDS, $data);$data作为url编码的字符串:数据将作为application/x-www-form-urlencoded,它是提交的html表单数据的默认编码。$data = array('name' => 'Ross', 'php_master' => true);curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($data));我希望这将有助于其他人节省时间。见:curl_initcurl_setopt
四季花海
我遇到了一种情况,需要在没有任何参数对的情况下将一些XML作为内容类型“text/xml”发布,下面是这样做的:$xml = '<?xml version="1.0"?><stuff><child>foo</child><child>bar</child>
</stuff>';$httpRequest = curl_init();curl_setopt($httpRequest, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($httpRequest, CURLOPT_HTTPHEADER, array("Content-Type: text/xml"));
curl_setopt($httpRequest, CURLOPT_POST, 1);curl_setopt($httpRequest, CURLOPT_HEADER, 1);
curl_setopt($httpRequest, CURLOPT_URL, $url);curl_setopt($httpRequest, CURLOPT_POSTFIELDS, $xml);
$returnHeader = curl_exec($httpRequest);curl_close($httpRequest);在我的例子中,我需要解析HTTP响应头中的一些值,所以您可能不一定需要设置CURLOPT_RETURNTRANSFER或CURLOPT_HEADER.