Seperti yang mungkin sudah Anda ketahui, perilaku default cURL adalah mencetak respons ke halaman
Namun, ada perbaikan cepat untuk ini
Opsi CURLOPT_RETURNTRANSFER
Fungsi curl_setopt memungkinkan Anda mengonfigurasi berbagai opsi untuk permintaan cURL
Salah satu opsi yang dapat kita atur dengan fungsi ini adalah CURLOPT_RETURNTRANSFER
Ambil kode PHP berikut sebagai contoh
//Create a cURL handle. $ch = curl_init('//test.com'); //Execute the cURL transfer. $result = curl_exec($ch);Jika Anda menjalankan cuplikan di atas, Anda akan melihat bahwa keluaran dari permintaan dicetak langsung ke browser
Namun, bagaimana jika kita ingin menetapkan output ke variabel?
Yah, untungnya itu cukup sederhana
//Create a cURL handle. $ch = curl_init('//test.com'); //Set CURLOPT_RETURNTRANSFER to TRUE curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //Execute the cURL transfer. $result = curl_exec($ch);_Pada contoh di atas, kami menetapkan CURLOPT_RETURNTRANSFER ke TRUE sebelum kami mengeksekusi permintaan cURL
Perhatikan bagaimana saya menekankan kata "sebelum" di sana. Opsi ini harus dikonfigurasi sebelum transfer cURL dijalankan
Akibatnya, fungsi curl_exec sekarang akan mengembalikan respons sebagai string alih-alih mengeluarkannya
Tutorial PHP cURL menunjukkan cara bekerja dengan pustaka cURL di PHP. cURL adalah pembungkus perpustakaan libcurl
$ php -v php -v PHP 8.1.2 (cli) (built: Aug 8 2022 07:28:23) (NTS) ...Kami menggunakan PHP versi 8. 1. 2
curl_exec($ch); _5 adalah alat baris perintah dan perpustakaan untuk mentransfer data dengan URL. Ini mendukung banyak protokol termasuk HTTP, HTTPS, FTP, GOPHER, MQTT, atau SMTP. curl_exec($ch); _6 adalah pembungkus PHP di atas perpustakaan
Curl harus diinstal. Misalnya, pada Debian nama paketnya adalah curl_exec($ch); 7
Permintaan GET PHP cURL
Dalam contoh berikut, kami membuat permintaan GET sederhana
In the example, we send a GET request to a small website. The output is directly shown in the standard output.
$ch = curl_init('//webcode.me'); _Fungsi curl_exec($ch); _8 menginisialisasi sesi baru dan mengembalikan pegangan cURL untuk digunakan dengan curl_exec($ch); 9, curl_close($ch); 0, . Kami menyediakan URL tempat kami mengirim permintaan
curl_close($ch); 0 mengeksekusi sesi cURL yang diberikan
curl_close($ch); _curl_close($ch); 1 menutup sesi cURL
$ php get_req.php My html pageToday is a beautiful day. We go swimming and fishing.
Hello there. How are you?
Pada contoh berikutnya, kami mengirim output transfer ke variabel
With the curl_setopt we set options for the cURL transfer. The CURLOPT_RETURNTRANSFER returns the transfer as a string of the return value of curl_exec instead of outputting it directly.
The CURLOPT_FILE option specifies where the transfer should be written to; the default is the standard output.
In the example, we set CURLOPT_FILE option to a file handle, that we have created. With the CURLOPT_HEADER, we disable the header.
PHP cURL HEAD request
A HEAD request is a GET request without the body.
true, CURLOPT_NOBODY => true, CURLOPT_RETURNTRANSFER => true ]; curl_setopt_array($ch, $options); $data = curl_exec($ch); echo $data; curl_close($ch);Untuk menghasilkan permintaan HEAD, kami menyetel curl_close($ch); 4 ke true dan curl_close($ch); 5 ke false. Kami mengatur semua opsi sekaligus dengan curl_close($ch); 6
$ php head_req.php HTTP/1.1 200 OK Server: nginx/1.6.2 Date: Mon, 08 Feb 2021 16:00:24 GMT Content-Type: text/html Content-Length: 348 Last-Modified: Sat, 20 Jul 2019 11:49:25 GMT Connection: keep-alive ETag: "5d32ffc5-15c" Accept-Ranges: bytesDengan fungsi curl_close($ch); _7 kami mendapatkan informasi mengenai transfer tertentu
We send a HEAD reqeust to a website. After executing the request, we get the status by passing the CURLINFO_RESPONSE_CODE option to the curl_getinfo function.
$ php status.php 200Formulir PHP CURL POST
Permintaan formulir POST mengeluarkan POST ke URL yang ditentukan, dengan kunci dan nilai data yang disandikan URL sebagai badan permintaan. Header Content-Type diatur ke application/x-www-form-urlencoded. Data dikirim dalam isi permintaan;
'John Doe', 'occupation' => 'gardener']; $options = [CURLOPT_POST => true, CURLOPT_POSTFIELDS => $fields, CURLOPT_RETURNTRANSFER => true]; curl_setopt_array($ch, $options); $data = curl_exec($ch); curl_close($ch); echo $data;Permintaan POST diatur dengan opsi ________9______8. Bidang POST diatur dengan opsi curl_close($ch); 9
$ php post_form.php { "args": {}, "data": "", "files": {}, "form": { "name": "John Doe", "occupation": "gardener" }, "headers": { "Accept": "*/*", "Content-Length": "254", "Content-Type": "multipart/form-data; ... "Host": "httpbin.org", "X-Amzn-Trace-Id": "Root=1-602162bf-3d24fe793b7403de54ad250f" }, "json": null, ... "url": "//httpbin.org/post" }Dalam contoh berikut, kami POST data JSON
In the example, we send a GET request to a small website. The output is directly shown in the standard output.
$ch = curl_init('//webcode.me'); _0Kami menyandikan data JSON dengan fungsi $ php get_req.php My html page
Today is a beautiful day. We go swimming and fishing.
Hello there. How are you?
Today is a beautiful day. We go swimming and fishing.
Hello there. How are you?
1In the example, we send a GET request to a small website. The output is directly shown in the standard output.
$ch = curl_init('//webcode.me'); _1PHP cURL beberapa permintaan asinkron
Fungsi $ php get_req.php My html page
Today is a beautiful day. We go swimming and fishing.
Hello there. How are you?
_2 membuat multi handle baru, yang memungkinkan pemrosesan beberapa handle cURL secara asinkronIn the example, we send a GET request to a small website. The output is directly shown in the standard output.
$ch = curl_init('//webcode.me'); _2Dalam contoh, kami membuat permintaan asinkron ke empat situs web. Kami mencetak kode status dan tajuk mereka
In the example, we send a GET request to a small website. The output is directly shown in the standard output.
$ch = curl_init('//webcode.me'); _3Kami memulai pegangan multi
In the example, we send a GET request to a small website. The output is directly shown in the standard output.
$ch = curl_init('//webcode.me'); _4Kami membuat pegangan standar untuk setiap URL dan menambahkannya ke pegangan multi dengan $ php get_req.php My html page
Today is a beautiful day. We go swimming and fishing.
Hello there. How are you?
3In the example, we send a GET request to a small website. The output is directly shown in the standard output.
$ch = curl_init('//webcode.me'); _5Kami menjalankan semua kueri secara asinkron, dan melanjutkan setelah semuanya selesai
In the example, we send a GET request to a small website. The output is directly shown in the standard output.
Kami menutup pegangannya
In the example, we send a GET request to a small website. The output is directly shown in the standard output.
$ch = curl_init('//webcode.me'); _7Kami mendapatkan kode status
In the example, we send a GET request to a small website. The output is directly shown in the standard output.
$ch = curl_init('//webcode.me'); _8Kami mendapatkan header
In the example, we send a GET request to a small website. The output is directly shown in the standard output.
$ch = curl_init('//webcode.me'); _9Kami membuat permintaan khusus dengan opsi $ php get_req.php My html page
Today is a beautiful day. We go swimming and fishing.
Hello there. How are you?
4curl_exec($ch); 0Contoh mengirim email ke komputer di jaringan lokal
curl_exec($ch); 1$ php get_req.php My html page
Today is a beautiful day. We go swimming and fishing.
Hello there. How are you?
_5 adalah nama komputer yang menjalankan server email di LANcurl_exec($ch); 2Kami menentukan nomor port dengan $ php get_req.php My html page
Today is a beautiful day. We go swimming and fishing.
Hello there. How are you?
6. $ php get_req.php My html pageToday is a beautiful day. We go swimming and fishing.
Hello there. How are you?
_7 menerjemahkan baris baru Unix menjadi $ php get_req.php My html pageToday is a beautiful day. We go swimming and fishing.
Hello there. How are you?
8,