Rumah >hujung hadapan web >tutorial js >Beberapa contoh aplikasi klasik CURL dalam kemahiran PHP_javascript

Beberapa contoh aplikasi klasik CURL dalam kemahiran PHP_javascript

WBOY
WBOYasal
2016-05-16 16:18:221531semak imbas

1. Langkah asas permintaan cURL:

(1)Permulaan
(2) Tetapkan pilihan, termasuk URL
(3) Laksanakan dan dapatkan kandungan dokumen HTML
(4) Lepaskan pemegang cURL

Salin kod Kod adalah seperti berikut:

//1. Permulaan
$ch = curl_init();

//2 Tetapkan pilihan, termasuk URL
curl_setopt($ch, CURLOPT_URL, "http://www.cnblogs.com/it-cen/");

//Kembalikan maklumat yang diperolehi oleh curl_exec() dalam bentuk aliran fail dan bukannya mengeluarkannya secara langsung
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//Maklumat fail pengepala akan dikeluarkan sebagai aliran data apabila memulakan
curl_setopt($ch, CURLOPT_HEADER, 1);

//3 Laksanakan dan dapatkan kandungan dokumen HTML
curl_exec($ch);

//4. Pemegang pelepas
curl_close($ch);

echo $ch;

?>

Nota: Langkah kedua adalah yang paling penting, iaitu fungsi curl_setopt()

Kami boleh menambah pernyataan untuk menyemak ralat Ambil perhatian bahawa "===false" digunakan di sini untuk membezakan antara output kosong dan nilai Boolean false

Salin kod Kod adalah seperti berikut:

$output = curl_exec($ch);

Jika ($output === false) {
              echo "CURL Error:".curl_error($ch);
}

Fungsi curl_getinfo() mengembalikan maklumat yang berkaitan dengan permintaan ini selepas cURL dilaksanakan, yang berguna untuk penyahpepijatan dan penyelesaian masalah:

Salin kod Kod adalah seperti berikut:

curl_exec($ch);
$info = curl_getinfo($ch);
echo '';
          print_r($info);                                                       echo '';

Data yang dikembalikan


Salin kod Kod adalah seperti berikut:
Susunan
(
[url] => http://www.cnblogs.com/it-cen/
[content_type] => text/html charset=utf-8
[http_code] => 200
[header_size] => 312
[saiz_permintaan] => 61
[masa fail] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.172
[namelookup_time] => [masa_sambung] => [pretransfer_time] => 0.063
[size_upload] => 0
[size_download] => 14658   //Saiz data yang diminta
[speed_download] => 85220 
[speed_upload] => 0
[muat turun_kandungan_panjang] => [upload_content_length] => 0
[starttransfer_time] => 0.125
[redirect_time] => 0
[certinfo] => Tatasusunan
(
)

[redirect_url] =>
)




2. Maklumat ini sangat berguna dalam penyahpepijatan
Contohnya, apabila cURL merangkak, data yang dirangkak mungkin sering tidak lengkap disebabkan oleh rangkaian dan sebab-sebab lain mengira saiz fail, dan kemudian membandingkannya dengan yang diperolehi oleh curl_getinfo( Jika saiznya sama, ia dianggap bahawa muat turun adalah betul, jika tidak percubaan ulangan dibuat.

Mari lihat contoh merebut imej:


Salin kod

Kod adalah seperti berikut:

header("Jenis-Kandungan: imej/png");

//1. Permulaan
$ch = curl_init();

//2 Tetapkan pilihan, termasuk URL
curl_setopt($ch, , CURLOPT_URL, "http://img04.taobaocdn.com/tfscom/TB1omaTHXXXXXajXVXXtKXbFXXX.png");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);

//3 Laksanakan dan dapatkan kandungan
$res = curl_exec($ch);

//Dapatkan maklumat
$info = curl_getinfo($ch);

//4. Keluarkan sumber
curl_close($ch);

file_put_contents("d:/aa.png", $res);

$size = filesize("d:/aa.png");

jika ($saiz != $info['size_download']) {
echo "Data yang dimuat turun tidak lengkap, sila muat turun semula";
} lain {
echo "Data muat turun selesai";
}


?>

3. Gunakan kaedah POST untuk menghantar data dalam cURL

Salin kod Kod adalah seperti berikut:

$ch = curl_init();

$data = tatasusunan('nama'=>'kelly', 'umur'=>27, 'jantina'=>1);

curl_setopt($ch, CURLOPT_URL, "http://localhost.post.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//Tetapkan untuk menyiarkan
curl_setopt($ch, CURLOPT_POST, 1);
//Tambah
pada pembolehubah siaran curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

$res = curl_exec($ch);

curl_close($ch);

gema $res;


?>

Gunakan kaedah ini untuk mensimulasikan meninggalkan mesej, atau anda boleh duduk di atas robot yang mengisi air Ideanya adalah sama

4. Muat naik fail menggunakan cURL

Salin kod Kod adalah seperti berikut:

//Minta data yang dimuat naik
$data = array('name'=>'beauty', "upload"=>"@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);

gema $res;

?>

Nota: Apabila menghantar fail, awalan nama fail dengan @ dan gunakan laluan penuh

5. Tetapan cURL

Malah, cURL mempunyai banyak pilihan konfigurasi ini adalah jiwa cURL. Ini adalah ringkasan beberapa item konfigurasi yang biasa dan penting gunakan cURL pada masa hadapan Bantuan:


CURLOPT_AUTOREFERER: Apabila mengubah hala berdasarkan lokasi:, tetapkan maklumat Perujuk: secara automatik dalam pengepala

CURLOPT_COOKIESESSION: Apabila didayakan, cURL akan melepasi kuki sesi dengan ketat dan mengabaikan kuki lain

CURLOPT_HEADER: Keluarkan maklumat fail pengepala sebagai aliran data

CURLOPT_INFILESIZE: Tetapkan saiz fail yang dimuat naik dalam bait

CURLOPT_MAXCONNECTS: Bilangan maksimum sambungan dibenarkan

CURLOPT_MAXREDIRS: Tentukan bilangan maksimum ubah hala HTTP

CURLOPT_COOKIE: Tetapkan kandungan bahagian "kuki:" permintaan HTTP Berbilang kuki diikuti dengan koma bertitik, dan terdapat ruang selepas koma bertitik

CURLOPT_POSTFIELDS: Semua data dihantar menggunakan operasi "POST" dalam protokol HTTP Untuk menghantar fail, tambah @ awalan di hadapan nama fail dan gunakan laluan penuh

......

Sila rujuk manual PHP untuk item konfigurasi yang lebih khusus

cURL sangat berkuasa Ia adalah perpustakaan universal dan bukan unik untuk PHP.

Saya harap pembaca akan mendapat sesuatu daripada mempelajari beberapa contoh cURL klasik dalam catatan blog ini.

Kenyataan:
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