// $postfields = array();
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
我的$postfields变量是一个参数数组.我有一个通知,有数组到字符串转换.它起作用.
我可以使用http_build_query()函数来取消通知,但是我使用@path_to_file来包含帖子文件.和http_build_query()中断文件包含.
我想知道是否有更多“正确”的方法来做到这一点.没有产生通知.
解决方法:
$postfields数组的某些值是否自己?这很可能是导致通知的原因. curl_setops期望它的第三个参数是一个数组,其键和值是字符串,如PHP’s manual page for the function中所述,尽管它可能不是很清楚:
This parameter can either be passed as a urlencoded string like ‘para1=val1¶2=val2&…’ or as an array with the field name as key and field data as value.
在这个引用中,关键点是para1 / 2和val1 / 2是字符串,如果需要,你可以将它们作为一个数组提供,其中键是para1和para2,值是val1和val2.
第一种是使用http_build_query()并将您对@filepath的使用替换为CURLFile objects.不幸的是,只有在使用PHP 5.5或更高版本时才可以使用.手册的页面有一个非常清晰简单的example of use.
如果使用CURLFiles不是你的选择,那么第二种方法是json_encode()$postfields数组的值,这些数组本身就是数组.这不优雅,它要求您在另一侧解码JSON.