记一次curl无返回值的调试

问题

php curl 执行post发现无返回值

调试

直接输出后发现是乱码

curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);

解决

  • 核心代码
$output = mb_convert_encoding($output, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5');
  • 完整代码
function post($url, $data = null) {
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
	if ($data) {
		curl_setopt($ch, CURLOPT_POST, TRUE);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
	}
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	$output = curl_exec($ch);
	$output = mb_convert_encoding($output, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5');
	curl_close($ch);
	return $output ?: '';
}

$url = 'http://xxx.com/ajax/GetJobInfoByBk.ashx';
$data = [
	'JobTypeId' => $code,
];
$res = $this->post($url, $data);
dump($res);

posted on 2022-09-08 09:52  小馬過河﹎  阅读(924)  评论(0)    收藏  举报

导航