CURL が HTTPS プロトコルのステータス コードを取得する方法

WBOY
リリース: 2016-06-23 13:39:22
オリジナル
996 人が閲覧しました

$curl = curl_init();$url='https://';curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl,CURLOPT_NOBODY,true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); echo curl_getinfo($curl,CURLINFO_HTTP_CODE); curl_close($curl); 
ログイン後にコピー


この方法を使用して http ステータス コードを出力するのは問題ありませんが、https プロトコルに切り替えると 0 が出力され続けます。 https を取得するにはどうすればよいですか


ディスカッション (解決策) への返信

https ?Request? Require Add
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 証明書のチェックをスキップ
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false) // 証明書から SSL 暗号化アルゴリズムが存在するかどうかを確認します

<?php/** curl 获取 https 请求* @param String $url        请求的url* @param Array  $data       要?送的??* @param Array  $header     请求时发送的header* @param int    $timeout    超时时间,默认30s*/function curl_https($url, $data=array(), $header=array(), $timeout=30){    $ch = curl_init();    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  // 从证书中检查SSL加密算法是否存在    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);    curl_setopt($ch, CURLOPT_POST, true);    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);    $response = curl_exec($ch);	$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);    if($error=curl_error($ch)){        die($error);    }    curl_close($ch);    return array($code,$response);}// 调用$url = 'https://example.com/message.php';$data = array('name'=>'fdipzone');$header = array();list($code, $response) = curl_https($url, $data, $header, 5);echo $code;echo $response;?>
ログイン後にコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート