特定の HTTPS URL で file_get_contents() を使用するときに暗号化を有効にできませんでした
https などの特定の HTTPS URL からコンテンツを取得しようとしたとき://eresearch.fidelity.com/ で file_get_contents() を使用すると、次のエラーが発生する可能性があります:
Warning: file_get_contents(): SSL: crypto enabling timeout Warning: file_get_contents(): Failed to enable crypto Warning: file_get_contents(): failed to open stream: operation failed Fatal error: Maximum execution time of 30 seconds exceeded
解決策:
この問題は、 SSLv3 プロトコルを使用するターゲット Web サイトは、PHP セットアップでサポートされていない可能性があります。
オプション 1: cURL を使用して SSL バージョンを指定する
cURL を使用して関数を作成します:
<code class="php">function getSSLPage($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSLVERSION,3); // Specify SSL version 3 $result = curl_exec($ch); curl_close($ch); return $result; }</code>
使用例:
<code class="php">var_dump(getSSLPage("https://eresearch.fidelity.com/eresearch/evaluate/analystsOpinionsReport.jhtml?symbols=api"));</code>
オプション 2: Windows にルート証明書を含める (オプション)
Windows では、ルート証明書が不足している場合があります。ルート証明書へのアクセスの制限。これを解決するには、次の手順に従います:
<code class="php">curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // True: verify certificates</code>
以上が特定の HTTPS URL で file_get_contents() を使用するときに暗号化を有効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。