Rumah pembangunan bahagian belakang masalah PHP Bagaimana untuk menetapkan curl tidak tamat masa dalam php? Analisis ringkas beberapa kaedah

Bagaimana untuk menetapkan curl tidak tamat masa dalam php? Analisis ringkas beberapa kaedah

Mar 27, 2023 pm 07:03 PM
php

Dalam PHP, curl ialah perpustakaan yang berkuasa untuk menghantar permintaan HTTP. Walau bagaimanapun, secara lalai, permintaan curl akan menetapkan tamat masa selepas permintaan itu akan dibatalkan. Masa ini lalai kepada 1 saat. Walau bagaimanapun, dalam beberapa kes, kami mungkin mahu permintaan curl diteruskan dalam tempoh masa yang lebih lama dan bukannya membatalkan dalam tamat masa lalai. Bagaimana untuk menetapkan masa tamat permintaan curl melalui kod PHP? Berikut adalah beberapa cara:

  1. Ubah suai fail php.ini

Jika anda mempunyai kebenaran untuk mengakses fail php.ini, anda boleh mengubah suai dalam fail ini Ubah suai tamat masa curl dalam . Dalam fail php.ini, cari dua pilihan berikut:

; Maximum amount of time (in seconds) that is allowed for cURL functions to execute.
; Note: This value should not be set to an excessive amount, as it will negatively
; affect server performance. 
; Default Value: 30
curl_timeout = 30

; The number of seconds to wait while trying to connect.
; Default Value: 60
curl_connect_timeout = 60
Salin selepas log masuk

Di mana, curl_timeout ialah masa pelaksanaan maksimum permintaan curl dan curl_connect_timeout ialah tamat masa sambungan permintaan curl. Anda perlu menukar nilai mereka kepada masa yang anda inginkan dalam beberapa saat. Selepas pengubahsuaian selesai, mulakan semula perkhidmatan Apache atau PHP-FPM untuk menjadikannya berkesan.

  1. Gunakan fungsi curl_setopt

Jika anda tidak mempunyai kebenaran untuk mengubah suai fail php.ini, anda boleh menggunakan fungsi curl_setopt dalam Kod PHP untuk menetapkan tamat masa curl . Fungsi ini digunakan untuk menetapkan pilihan curl Ia digunakan seperti berikut:

bool curl_setopt ( resource $ch , int $option , mixed $value )
Salin selepas log masuk

di mana, $ch ialah pemegang curl (biasanya dimulakan menggunakan fungsi curl_init), $option ialah pilihan yang perlu ditetapkan, $value ialah nilai pilihan. Terdapat dua pilihan untuk ditetapkan untuk tamat masa:

CURLOPT_TIMEOUT:curl 请求最大执行时间(以秒为单位);
CURLOPT_CONNECTTIMEOUT:curl 请求连接超时时间(以秒为单位)。
Salin selepas log masuk

Anda boleh menggunakan kod berikut untuk menetapkan pilihan di atas:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com");
curl_setopt($ch, CURLOPT_TIMEOUT, 120); // 设置 curl 请求最大执行时间为 120 秒(2 分钟)
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); // 设置 curl 请求连接超时时间为 30 秒
$result = curl_exec($ch);
curl_close($ch);
Salin selepas log masuk

Dalam kod di atas, kami menetapkan curl Maksimum masa pelaksanaan untuk permintaan ialah 120 saat dan tamat masa sambungan ialah 30 saat. Jika permintaan curl tidak selesai dalam masa 120 saat atau sambungan tidak berjaya diwujudkan dalam masa 30 saat, permintaan akan dibatalkan.

  1. Tambah parameter pada URL

Jika anda tidak mahu mengubah suai konfigurasi PHP atau menggunakan fungsi curl_setopt, anda juga boleh menambah parameter ke URL untuk menetapkan curl Tamat masa permintaan. Operasi khusus adalah seperti berikut:

http://example.com/?curl_timeout=120&curl_connect_timeout=30
Salin selepas log masuk

Dalam URL di atas, kami menambahkan parameter curl_timeout dan curl_connect_timeout pada parameter permintaan untuk menetapkan tamat masa permintaan curl. curl secara automatik membaca parameter ini dan menggunakan nilainya apabila membuat permintaan. Kaedah ini agak mudah, tetapi terdapat kelemahan: parameter yang terkandung dalam URL mungkin dipintas atau diubah suai oleh penyemak imbas atau pelayan proksi terbalik.

Ringkasan

Dengan mengubah suai fail php.ini atau menggunakan fungsi curl_setopt atau menambah parameter dalam URL, kami boleh menetapkan tamat masa untuk permintaan curl dalam PHP. Apabila menggunakan curl, anda perlu menetapkan masa tamat secara munasabah mengikut situasi tertentu Jangan tetapkan tamat masa terlalu lama untuk mengelakkan menjejaskan prestasi pelayan.

Atas ialah kandungan terperinci Bagaimana untuk menetapkan curl tidak tamat masa dalam php? Analisis ringkas beberapa kaedah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China 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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

CakePHP Bekerja dengan Pangkalan Data CakePHP Bekerja dengan Pangkalan Data Sep 10, 2024 pm 05:25 PM

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

See all articles