我的编码Whm插件有警告
警告:http_build_query():参数1应该为数组或对象。第50行的/module_functions.php中给出的值不正确
第150行是:$query .= '?' . http_build_query($params);
整行:
public function whmaapicall()
{
$whmusername = $_ENV['REMOTE_USER'];
$whmpassword = $_ENV['REMOTE_PASSWORD'];
$query = 'https://127.0.0.1:2087/json-api/listpkgs?api.version=1';
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$header[0] = 'Authorization: Basic ' . base64_encode($whmusername . ':' . $whmpassword) . "\n\r";
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_URL, $query);
$result = curl_exec($curl);
if (!$result) {
error_log('curl_exec threw error "' . curl_error($curl) . '" for ' . $query);
}
curl_close($curl);
return json_decode($result);
}
public function whmapi($function = NULL, $params = NULL)
{
$whmusername = 'root';
if ($function == 'listpkgs') {
$whmusername = $_ENV['REMOTE_USER'];
return $this->whmapi2();
}
$whmhash = $this->gethash();
$query = 'https://127.0.0.1:2087/json-api/' . $function;
$query .= '?' . http_build_query($params); //line mentioned
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$header[0] = 'Authorization: WHM ' . $whmusername . ':' . preg_replace('\'(' . "\r" . '|' . "\n" . ')\'', '', $whmhash);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_URL, $query);
$result = curl_exec($curl);
curl_close($curl);
return json_decode($result);
}
答案 0 :(得分:0)
的$ params的默认值为NULL,而NULL不是http_build_query的合法参数,因此您直接将$ params传递给http_build_query而不先检查它是否为null。停止提供http_build_query NULL,执行
$query .= '?';
if($params!==NULL){
$query.=http_build_query($params);
}