Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah saya boleh menguruskan isu tamat masa apabila menggunakan file_get_contents()?

Bagaimanakah saya boleh menguruskan isu tamat masa apabila menggunakan file_get_contents()?

Barbara Streisand
Barbara Streisandasal
2024-11-13 14:19:02763semak imbas

How can I manage timeout issues when using file_get_contents()?

Pertimbangan Tamat Masa untuk file_get_contents()

Apabila menggunakan file_get_contents() untuk mengambil data daripada pautan jauh, adalah penting untuk mempertimbangkan implikasi tamat masanya . Secara lalai, file_get_contents() mewarisi tempoh tamat masanya daripada tetapan PHP ini default_socket_timeout, yang lalai kepada 60 saat. Jika operasi mendapatkan semula melebihi had ini, permintaan akan tamat masa lebih awal.

Mengatasi Tamat Masa Lalai

Untuk mengubah suai tetapan tamat masa lalai, terdapat dua pendekatan utama:

  1. Pengubahsuaian Tetapan Ini: Gunakan ini_set() untuk melaraskan nilai default_socket_timeout. Contohnya:

    ini_set('default_socket_timeout', 900); // 900 Seconds = 15 Minutes
  2. Konfigurasi Konteks Strim: Tentukan konteks strim tersuai menggunakan stream_context_create() dan tentukan tamat masa yang diingini sebagai pilihan konteks HTTP. Berikut ialah contoh:

    $ctx = stream_context_create(array('http' => array('timeout' => 1200))); //1200 Seconds is 20 Minutes
    echo file_get_contents('http://example.com/', false, $ctx);

Nota: Ingat bahawa tempoh tamat masa digunakan untuk keseluruhan proses mendapatkan fail, termasuk kependaman rangkaian dan masa pemprosesan pelayan. Oleh itu, adalah penting untuk menetapkan nilai tamat masa yang sesuai yang menyumbang kepada kemungkinan kelewatan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menguruskan isu tamat masa apabila menggunakan file_get_contents()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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