Dengan peningkatan senario aplikasi Internet, prestasi dan keperluan kebolehpercayaan aplikasi Web semakin tinggi dan lebih tinggi. Apabila memulakan permintaan HTTP, anda pasti akan menghadapi masalah seperti kesesakan rangkaian, beban pelayan yang berat, tindak balas perlahan antara muka pihak ketiga, dsb., mengakibatkan masa permintaan yang lama. Apabila masa permintaan terlalu lama, ia akan menyebabkan halaman bahagian hadapan membeku, merendahkan pengalaman pengguna, dan lebih serius, ia boleh menyebabkan kehabisan sumber pelayan. Atas sebab ini, menetapkan tamat masa adalah sangat penting.
Artikel ini akan memperkenalkan cara untuk menetapkan tamat masa dalam PHP.
Tamat masa merujuk kepada masa maksimum untuk menunggu pelayan memproses dan bertindak balas selepas menghantar permintaan HTTP. Sebaik sahaja masa ini melebihi, permintaan akan dibatalkan secara paksa dan mesej ralat akan dikembalikan.
Tetapan tamat masa mempunyai dua makna: dalam satu pihak, dari perspektif pelayan Web, ia melindungi sumber pelayan dengan mengehadkan masa pemprosesan dan mengelakkan kesan jambatan yang disebabkan oleh terlalu banyak permintaan, yang mengurangkan ketersediaan daripada keseluruhan perkhidmatan. Sebaliknya, dari perspektif pengguna, tamat masa juga adalah untuk mengelakkan kemerosotan pengalaman pengguna akibat masa menunggu permintaan yang lama. Apabila permintaan melebihi masa tertentu, pengguna akan mula tertanya-tanya sama ada sesuatu yang tidak normal telah berlaku, malah mungkin mengganggu operasi.
Tamat masa boleh ditetapkan dalam PHP dan ia boleh ditakrifkan di tempat yang berbeza. Secara umumnya, masa tamat masa terutamanya termasuk jenis berikut:
Tamat masa sambungan merujuk kepada masa menunggu apabila membuat sambungan HTTP. Dalam PHP, sambungan HTTP boleh diwujudkan menggunakan pustaka fsockopen()
atau curl
. Apabila menggunakan fsockopen()
untuk menyambung ke pelayan HTTP, anda boleh menetapkan tamat masa sambungan soket:
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 5); if (!$fp) { echo "连接服务器失败: $errstr ($errno)"; } else { //请求处理 fclose($fp); }
Apabila menggunakan pustaka curl
untuk menyambung ke pelayan HTTP, anda boleh menetapkan tamat masa jika sasaran pelayan tidak boleh disambungkan dalam masa pertandingan yang ditentukan Ralat tamat masa sambungan akan dicetuskan:
$curl = curl_init(); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5); //设置连接超时时间 curl_setopt($curl, CURLOPT_TIMEOUT, 5); //设置超时时间 curl_setopt($curl, CURLOPT_URL, 'http://www.example.com'); curl_exec($curl); curl_close($curl);
Tamat masa penghantaran data merujuk kepada masa untuk menunggu pelayan bertindak balas selepas berjaya sambungan. Begitu juga, anda boleh menggunakan pustaka curl
untuk menetapkan tamat masa, menunggu respons pelayan dalam masa yang ditentukan dan membuang ralat jika tamat masa:
$curl = curl_init(); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5); //设置连接超时时间 curl_setopt($curl, CURLOPT_TIMEOUT, 5); //设置数据传输超时时间 curl_setopt($curl, CURLOPT_URL, 'http://www.example.com'); curl_exec($curl); curl_close($curl);
Apabila jurubahasa PHP melaksanakan bahagian Apabila melaksanakan program, jika masa pelaksanaan tamat, ralat tamat masa pelaksanaan skrip akan dibuang. Secara lalai, PHP akan menunggu 30 saat sebelum mengganggu pelaksanaan skrip Anda boleh menukar tamat masa melalui kaedah set_time_limit()
:
set_time_limit(10); //设置脚本最大执行时间为10秒钟
Apabila anda perlu memproses sejumlah besar data atau melakukan tugas yang memakan masa yang sangat lama. , anda boleh Kaedah ini diperlukan untuk tetapan tamat masa.
Adalah sangat penting untuk menetapkan tamat masa dalam PHP untuk mengelakkan masalah seperti kehabisan sumber dan kemerosotan pengalaman pengguna yang disebabkan oleh masa menunggu yang lama untuk permintaan. PHP menyediakan banyak fungsi dan perpustakaan untuk melaksanakan tetapan tamat masa, yang boleh mengehadkan tamat masa semasa penubuhan sambungan, penghantaran data dan pelaksanaan skrip. Apabila menetapkan tempoh tamat masa, anda perlu memilih masa dan nilai yang sesuai mengikut situasi khusus untuk memastikan ketersediaan pelayan dan pengalaman pengguna.
Atas ialah kandungan terperinci Tetapkan tamat masa dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!