Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mendayakan Kripto Apabila Menggunakan file_get_contents() dengan URL HTTPS Tertentu?

Bagaimana untuk Mendayakan Kripto Apabila Menggunakan file_get_contents() dengan URL HTTPS Tertentu?

Mary-Kate Olsen
Lepaskan: 2024-10-23 12:17:30
asal
478 orang telah melayarinya

How to Enable Crypto When Using file_get_contents() with Specific HTTPS URLs?

Gagal Mendayakan Kripto Apabila Menggunakan file_get_contents() dengan URL HTTPS Tertentu

Apabila cuba mendapatkan semula kandungan daripada URL HTTPS tertentu, seperti https ://eresearch.fidelity.com/, menggunakan file_get_contents(), anda mungkin menghadapi ralat berikut:

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
Salin selepas log masuk

Penyelesaian:

Isu timbul daripada sasaran tapak web menggunakan protokol SSLv3, yang mungkin tidak disokong oleh persediaan PHP anda.

Pilihan 1: Tentukan Versi SSL Menggunakan cURL

Buat fungsi menggunakan 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>
Salin selepas log masuk

Contoh penggunaan:

<code class="php">var_dump(getSSLPage("https://eresearch.fidelity.com/eresearch/evaluate/analystsOpinionsReport.jhtml?symbols=api"));</code>
Salin selepas log masuk

Pilihan 2: Sertakan Sijil Root dalam Windows (Pilihan)

Dalam Windows, anda mungkin menghadapi kekurangan akses kepada sijil akar. Untuk menyelesaikan masalah ini, ikuti langkah berikut:

  • Muat turun sijil akar daripada http://curl.haxx.se/docs/caextract.html
  • Ubah suai kod cURL anda:
<code class="php">curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // True: verify certificates</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mendayakan Kripto Apabila Menggunakan file_get_contents() dengan URL HTTPS Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan