如何使用php curl代替命令提示符

如何使用php curl代替命令提示符,php,Php,我对命令行有问题。我必须使用-d “{名称:YourCompanyName,时区:美国和加拿大太平洋时间}” 我不知道怎么做。我认为这意味着php curl中的数据,所以我使用了这个CURLOPT_POSTFIELDS。但我仍然得到这个错误 错误:缺少必需的参数“name” 您必须在$fields上调用json_encode,然后才能将其发送到POST正文中。与修复未定义的$fields_字符串一起,这看起来像: $fields_string = json_encode($fields); 我

我对命令行有问题。我必须使用-d “{名称:YourCompanyName,时区:美国和加拿大太平洋时间}” 我不知道怎么做。我认为这意味着php curl中的数据,所以我使用了这个CURLOPT_POSTFIELDS。但我仍然得到这个错误

错误:缺少必需的参数“name”

您必须在$fields上调用json_encode,然后才能将其发送到POST正文中。与修复未定义的$fields_字符串一起,这看起来像:

$fields_string = json_encode($fields);

我认为数据应该是json格式的,所以请将post数据转换为json格式,如下所示

$api_url = 'api.callrail.com/v1/companies.json';
$fields = json_encode(array('name'=>'BobsAutoShop','time_zone'=>'Pasific Time (US & Canada)'));
$ch = curl_init($api_url); //print_r(curl_getinfo($ch)) ; 
      curl_setopt($ch, CURLOPT_HEADER, 0);
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
      curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Token token=\"{$api_key}\"","Content-Type: application/json"));

首先,您在代码中传递了错误的变量:

curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

其中未定义$fields\u string。

请发布您的代码以更好地解释您的问题。$api\u url=$字段=数组'name'=>'BobsAutoShop','time_zone'=>'pascific time US&Canada'$ch=curl_init$api_url//打印\u rcurl\u getinfo$ch;curl_setopt$ch,CURLOPT_头,0;curl_setopt$ch,CURLOPT_CUSTOMREQUEST,POST//curl_setopt$ch,CURLOPT_POST,$fields_string;curl_setopt$ch,CURLOPT_POSTFIELDS,$fields_string;curl_setopt$ch,CURLOPT_RETURNTRANSFER,true;curl\u setopt$ch,CURLOPT\u HTTPHEADER,arrayaauthorization:Token-Token=\{$api\u-key}\,内容类型:application/json;如果你能接受这个答案那就太好了
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);