1. Langkah Dasar Permintaan Curl:
(1) Inisialisasi
(2) Tetapkan opsi, termasuk URL
(3) Jalankan dan Dapatkan Konten Dokumen HTML
(4) Lepaskan pegangan keriting
Salinan kode adalah sebagai berikut:
<? php
// 1. Inisialisasi
$ ch = curl_init ();
// 2. Tetapkan opsi, termasuk URL
curl_setopt ($ ch, curlopt_url, "http://www.cnblogs.com/it-cen/");
// Kembalikan informasi yang diperoleh oleh curl_exec () sebagai aliran file alih -alih secara langsung mengeluarkannya
curl_setopt ($ ch, curlopt_returntransfer, 1);
// Saat memulai, informasi file header akan output sebagai aliran data
curl_setopt ($ ch, curlopt_header, 1);
// 3. Jalankan dan Dapatkan Konten Dokumen HTML
curl_exec ($ ch);
// 4. Lepaskan pegangannya
curl_close ($ ch);
Echo $ ch;
?>
Catatan: Langkah kedua adalah yang paling penting, yaitu fungsi curl_setopt ()
Kami dapat menambahkan pernyataan untuk memeriksa kesalahan. Di sini kita harus memperhatikan penggunaan "=== false", yaitu membedakan antara output kosong dan nilai boolean false
Salinan kode adalah sebagai berikut:
$ output = curl_exec ($ ch);
if ($ output === false) {
echo "kesalahan curl:". Curl_error ($ ch);
}
Fungsi curl_getInfo () mengembalikan informasi tentang permintaan ini setelah curl dieksekusi, yang berguna untuk men -debug dan pemecahan masalah:
Salinan kode adalah sebagai berikut:
curl_exec ($ ch);
$ info = curl_getinfo ($ ch);
echo '<per>';
print_r ($ info);
echo '</per>';
Data yang dikembalikan
Salinan kode adalah sebagai berikut:
Array
(
[url] => http://www.cnblogs.com/it-cen/
[content_type] => teks/html; Charset = UTF-8
[http_code] => 200
[header_size] => 312
[request_size] => 61
[filetime] => -1
[SSL_VERIFY_RESULT] => 0
[redirect_count] => 0
[total_time] => 0,172
[nameLookUp_time] => 0,016
[connect_time] => 0,063
[pretransfer_time] => 0,063
[size_upload] => 0
[size_download] => 14658 <span style = "color: #ff0000;"> // yang diminta ukuran data </span>
[speed_download] => 85220
[speed_upload] => 0
[download_content_length] => 14658
[unggah_content_length] => 0
[startTransfer_time] => 0.125
[redirect_time] => 0
[certinfo] => array
(
)
[redirect_url] =>
)
2. Informasi ini sangat berguna dalam debugging . Misalnya, ketika merangkak keriting, data merangkak dapat sering terjadi karena alasan jaringan, dan kami dapat menghitung ukuran file melalui data yang diperoleh, dan kemudian membandingkannya dengan data yang diperoleh. Jika ukurannya sama, ditentukan bahwa unduhan itu benar, jika tidak kita akan melakukan upaya berulang.
Mari kita lihat contoh gambar merangkak:
Salinan kode adalah sebagai berikut:
<? php
header ("tipe konten: gambar/png");
// 1. Inisialisasi
$ ch = curl_init ();
// 2. Tetapkan opsi, termasuk URL
curl_setopt ($ ch ,, curlopt_url, "http://img04.taobaocdn.com/tfscom/tb1omathxxxxxajxvxxxxbfxxx.png");
curl_setopt ($ ch, curlopt_returntransfer, 1);
curl_setopt ($ ch, curlopt_header, 1);
// 3. Mengeksekusi dan mendapatkan konten
$ res = curl_exec ($ ch);
// Dapatkan informasi
$ info = curl_getinfo ($ ch);
// 4. Rilis sumber daya
curl_close ($ ch);
file_put_contents ("d: /aa.png", $ res);
$ size = filessize ("d: /aa.png");
if ($ size! = $ info ['size_download']) {
echo "Data yang diunduh tidak lengkap, silakan unduh lagi";
} kalau tidak {
Echo "Unduh Data Lengkap";
}
?>
3. Kirim Data Menggunakan Metode Posting di Curl
Salinan kode adalah sebagai berikut:
<? php
$ ch = curl_init ();
$ data = array ('name' => 'Kelly', 'usia' => 27, 'sex' => 1);
curl_setopt ($ ch, curlopt_url, "http: //localhost.post.php");
curl_setopt ($ ch, curlopt_returntransfer, 1);
// atur sebagai postingan
curl_setopt ($ ch, curlopt_post, 1);
// Tambahkan variabel posting
curl_setopt ($ ch, curlopt_postfields, $ data);
$ res = curl_exec ($ ch);
curl_close ($ ch);
Echo $ res;
?>
Metode ini dapat mensimulasikan pesan, atau Anda dapat duduk di robot penyiraman, dan idenya sama
4. Unggah file dengan ikal
Salinan kode adalah sebagai berikut:
<? php
// Minta data yang diunggah
$ data = array ('name' => 'beauty', "unggah" => "@a.zip");
$ ch = curl_init ();
curl_setopt ($ ch, curlopt_url, "http://127.0.0.1/socket/upload_file.php");
curl_setopt ($ ch, curlopt_returntransfer, 1);
curl_setopt ($ ch, curlopt_post, 1);
curl_setopt ($ ch, curlopt_postfields, $ data);
$ res = curl_exec ($ ch);
curl_close ($ ch);
Echo $ res;
?>
Catatan: Saat mengirim file, awalkan @ sebelum nama file dan gunakan jalur lengkap
5. Item Pengaturan Curl
Faktanya, Curl memiliki banyak opsi konfigurasi, dan opsi ini adalah jiwa Curl. Mengaturnya melalui setOpt (), berikut ini merangkum beberapa item konfigurasi yang umum dan penting. Saya berharap ini akan membantu pembaca saat menggunakan Curl di masa depan:
CURLOPT_AUTOREFERER: Saat mengarahkan ulang sesuai dengan lokasi:, referer: Informasi di header secara otomatis diatur.
Curlopt_cookiesession: Saat diaktifkan, Curl akan melewati sesi dengan rapat, mengabaikan cookie lain
Curlopt_header: Keluarkan informasi file header sebagai aliran data
CURLOPT_INFILESIZE: Atur ukuran file yang diunggah, dalam byte
Curlopt_maxconnects: Jumlah koneksi maksimum yang diizinkan
Curlopt_maxredirs: Tentukan jumlah maksimum pengalihan http
CURLOPT_COOKIE: Atur konten "cookie:" bagian dari permintaan HTTP. Beberapa cookie diikuti oleh titik koma, dan ruang ditambahkan ke titik koma.
CURLOPT_POSTFIELDS: Semua data dikirim menggunakan operasi "Posting" dalam protokol HTTP untuk mengirim file yang akan dikirim, dan nama file diawali dengan @ awalan dan jalur lengkap digunakan.
.........
Untuk lebih banyak item konfigurasi, silakan merujuk ke manual PHP
Curl sangat kuat, ini adalah perpustakaan umum, tidak unik untuk PHP.
Saya berharap pembaca dapat memperoleh sesuatu melalui mempelajari beberapa contoh ikal klasik dalam posting blog ini.