2013-08-22 169 views
1

我想将以下命令行CURL实现为PHP CURL请求。如何将命令行CURL实现为PHP CURL请求

curl --data username=ekansh&domain=siteURL&password=mypass 
http://siteURL:8090/add-user -k -v -u apiuser:yru3472825fhj 

我曾尝试下面的代码是一样的:

$fields = array('domain'=> 'siteURL','password'=> 'mypass','apiuser'=> 
'yru3472825fhj','username'=> 'ekansh'); 
    $data=>array(CURLOPT_POST => 1,CURLOPT_HEADER => 0,CURLOPT_URL => 
$url,CURLOPT_FRESH_CONNECT => 1,CURLOPT_RETURNTRANSFER => 1,CURLOPT_FORBID_REUSE => 
1,CURLOPT_TIMEOUT => 4,CURLOPT_POSTFIELDS => http_build_query($_POST)); 
    $ch = curl_init(); 
    $options=$fields+$defaults; 
    curl_setopt_array($ch,$options); 
    $result=curl_exec($ch) 
    curl_close($ch); 

但这不是工作..我没有得到在$ result中任何回应。我怎么能实现上面的代码?

UPDATE

$fields = array('domain' => 'siteurl','password' => 'mypass', 
'apiuser'=> 'yru3472825fhj','username'=> 'ekansh'); 
    $data=array(CURLOPT_POST => 1,CURLOPT_HEADER => 0,CURLOPT_URL => 
    'siteurl',CURLOPT_FRESH_CONNECT => 1,CURLOPT_RETURNTRANSFER => 1, 
CURLOPT_FORBID_REUSE => 1,CURLOPT_TIMEOUT => 4, 
CURLOPT_POSTFIELDS => $fields); 
    $ch = curl_init(); 
    curl_setopt_array($ch,$data); 
    $result=curl_exec($ch); 
    curl_close($ch); 

我上面的代码已经修改,但它仍然没有工作。

+0

几件事。 1)'+'似乎不适用于数组; 2)你可能会错误地将curl选项设置为'$ options'而不是'$ data'。 – Passerby

+0

@Passerby请参阅上面更新 – Ekansh

回答

1

$data阵列,它应该是:

CURLOPT_POSTFIELDS => $fields 

并设置它应该是所有选项:

curl_setopt_array($ch, $data); 

这条线没有做任何事情:

$options = $fields + $defaults; 

您不能在阵列上使用+,并且您从未设置过$defaults

对于认证,您需要使用的选项:

CURLOPT_USERPWD => 'apiuser:yru3472825fhj' 

,而不是把他们$data的。

+0

请参阅上文edit @Barmar – Ekansh

+0

请参阅有关验证的其他解答。 – Barmar