php cURL模擬https請求報錯

最近在做微信開發,通過cURL請求創建微信自定義菜單的時候結果報錯,後來查資料總要解決。

環境:阿里 centos6.4 php5.3 nginx

報錯一:

Problem with the SSL CA cert (path? access…

解決方式:

1、不管之前安裝過沒有 直接在安裝ca-certificates下

yum install ca-certificates 
2、重啓php-fpm

service php-fpm restart
或者
/etc/init.d/php-fpm restart
3、設置 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);//curl https ssl

------------------------------------------------------------------------------

報錯二:

Protocol https not supported or disabled in libcurl

解決方式:

竟然是因爲請求的URL前面多了一個空格 $url = " https://api.weixin.qq.com/cgi-bin/menu/create?";

於是trim()處理了下。


===============================================

/**
* get
* $url = "http://www.sxfenglei.com/get.php?name=小小馮同學&age=30";
*/
function getCurl($url=''){
	if(empty($url)){
		return false;
	} 
	$url = trim($url);
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HEADER, 0);//設置不帶頭文件
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//設置獲取的信息以文件流的形式返回 
    $output = curl_exec($curl);  
	if($output === false){
		echo 'cURL Error:'.curl_error($curl);
	}
    curl_close($curl);
	return $output;
}


/**
* post
* $url = "http://www.sxfenglei.com/post.php";
* $data = array('name'=>'小小馮同學','age'=>30);
*/
function postCurl($url='',$data=array()){
	if(empty($url)){
		return false;
	} 
    $url = trim($url);
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_HEADER, 0); //設置不帶頭文件
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//設置獲取的信息以文件流的形式返回 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);//curl https ssl
    curl_setopt($curl, CURLOPT_POST, 1);//設置post方式提交 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); //設置post數據
    $output = curl_exec($curl);  
	if($output === false){
		echo 'cURL Error:'.curl_error($curl);
	}
    curl_close($curl);
	return $output;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章