Dalam pembangunan web, kami perlu berinteraksi dengan perkhidmatan lain dari semasa ke semasa, seperti meminta API, merangkak halaman web, dsb. cURL ialah alat yang sangat berkuasa yang boleh digunakan untuk melaksanakan permintaan HTTP dan muat naik dan muat turun FTP. Dalam PHP, kita boleh menggunakan perpustakaan cURL untuk membuat permintaan rangkaian.
Artikel ini akan memperkenalkan cara menggunakan perpustakaan cURL untuk membuat permintaan rangkaian dalam PHP.
Mula-mula, kita perlu memasang sambungan cURL pada pelayan. Di bawah Ubuntu, anda boleh menggunakan arahan berikut untuk memasang:
sudo apt-get install php-curl
Di bawah CentOS, anda boleh menggunakan arahan berikut untuk memasang:
sudo yum install php-curl
Selepas pemasangan selesai, anda boleh menggunakan arahan berikut untuk mengesahkan:
php -i | grep -i curl
Jika Sambungan cURL berjaya dipasang, output Maklumat berikut harus disertakan:
curl cURL support => enabled cURL Information => 7.50.1
Menghantar permintaan GET ialah cara paling mudah untuk meminta. Dalam PHP, kita boleh menggunakan fungsi curl_init() untuk memulakan, menggunakan fungsi curl_setopt() untuk menetapkan parameter permintaan, dan akhirnya menggunakan fungsi curl_exec() untuk menghantar permintaan. Berikut ialah contoh mudah menghantar permintaan GET:
$url = 'https://example.com/api/get_data'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); echo $response;
Dalam kod di atas, kami mula-mula mentakrifkan URL yang diminta. Kemudian gunakan fungsi curl_init() untuk memulakan sesi cURL dan masukkan URL permintaan sebagai parameter. Kemudian gunakan fungsi curl_setopt() untuk menetapkan parameter CURLOPT_RETURNTRANSFER kepada benar, menunjukkan bahawa hasil permintaan perlu dikembalikan. Akhir sekali, gunakan fungsi curl_exec() untuk menghantar permintaan dan simpan hasilnya ke pembolehubah $response. Akhir sekali, gunakan fungsi curl_close() untuk menutup sesi.
Menghantar permintaan POST adalah lebih rumit sedikit daripada menghantar permintaan GET. Kita perlu menggunakan fungsi curl_setopt() untuk menetapkan parameter CURLOPT_POST kepada benar dan menghantar data yang diminta sebagai parameter CURLOPT_POSTFIELDS. Berikut ialah contoh menghantar permintaan POST:
$url = 'https://example.com/api/post_data'; $data = array( 'name' => 'John', 'age' => 30, ); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); $response = curl_exec($ch); curl_close($ch); echo $response;
Dalam kod di atas, kami mula-mula menentukan URL yang diminta dan data yang diminta. Kemudian gunakan fungsi curl_init() untuk memulakan sesi cURL dan masukkan URL permintaan sebagai parameter. Kemudian gunakan fungsi curl_setopt() untuk menetapkan parameter CURLOPT_RETURNTRANSFER kepada benar, menunjukkan bahawa hasil permintaan perlu dikembalikan. Kemudian gunakan fungsi curl_setopt() untuk menetapkan parameter CURLOPT_POST kepada benar, yang bermaksud menghantar permintaan POST. Akhir sekali, gunakan fungsi curl_setopt() untuk menetapkan parameter CURLOPT_POSTFIELDS kepada data yang diminta dan gunakan fungsi http_build_query() untuk menukar data kepada rentetan berkod URL. Akhir sekali, fungsi curl_exec() digunakan untuk menghantar permintaan dan hasilnya disimpan dalam pembolehubah $response.
Sesetengah API memerlukan kami menetapkan pengepala permintaan khusus untuk interaksi biasa. Untuk kes ini, kita boleh menggunakan fungsi curl_setopt() untuk menetapkan parameter CURLOPT_HTTPHEADER untuk menetapkan pengepala permintaan. Berikut ialah contoh menetapkan pengepala permintaan:
$url = 'https://example.com/api/get_data'; $headers = array( 'Authorization: Bearer xxxxxxx', 'Content-Type: application/json', ); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); curl_close($ch); echo $response;
Dalam kod di atas, kami mula-mula mentakrifkan URL yang diminta dan pengepala permintaan. Kemudian gunakan fungsi curl_init() untuk memulakan sesi cURL dan masukkan URL permintaan sebagai parameter. Kemudian gunakan fungsi curl_setopt() untuk menetapkan parameter CURLOPT_RETURNTRANSFER kepada benar, menunjukkan bahawa hasil permintaan perlu dikembalikan. Kemudian gunakan fungsi curl_setopt() untuk menetapkan parameter CURLOPT_HTTPHEADER kepada pengepala permintaan yang ditetapkan dan hantarkannya dalam tatasusunan. Akhir sekali, fungsi curl_exec() digunakan untuk menghantar permintaan dan hasilnya disimpan dalam pembolehubah $response.
Kadangkala, kita perlu menghantar permintaan melalui pelayan proksi. Untuk kes ini, kita boleh menggunakan fungsi curl_setopt() untuk menetapkan parameter CURLOPT_PROXY untuk menetapkan pelayan proksi. Berikut ialah contoh menggunakan pelayan proksi:
$url = 'https://example.com/api/get_data'; $proxy = 'http://proxy.example.com:8080'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_PROXY, $proxy); $response = curl_exec($ch); curl_close($ch); echo $response;
Dalam kod di atas, kami mula-mula menentukan URL yang diminta dan alamat pelayan proksi. Kemudian gunakan fungsi curl_init() untuk memulakan sesi cURL dan masukkan URL permintaan sebagai parameter. Kemudian gunakan fungsi curl_setopt() untuk menetapkan parameter CURLOPT_RETURNTRANSFER kepada benar, menunjukkan bahawa hasil permintaan perlu dikembalikan. Kemudian gunakan fungsi curl_setopt() untuk menetapkan parameter CURLOPT_PROXY kepada alamat pelayan proksi. Akhir sekali, fungsi curl_exec() digunakan untuk menghantar permintaan dan hasilnya disimpan dalam pembolehubah $response.
Ringkasnya, perpustakaan cURL ialah alat yang sangat berkuasa yang boleh digunakan untuk melaksanakan operasi seperti permintaan HTTP. Dalam PHP, kita boleh menggunakan perpustakaan cURL untuk menghantar permintaan rangkaian dan menetapkan parameter permintaan untuk memenuhi keperluan yang berbeza.
Atas ialah kandungan terperinci Bagaimana untuk membuat permintaan rangkaian menggunakan perpustakaan cURL dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!