Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah saya boleh meniru permintaan GET pelayar dengan PHP dan cURL?

Bagaimanakah saya boleh meniru permintaan GET pelayar dengan PHP dan cURL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 18:24:29380semak imbas

How can I emulate a browser GET request with PHP and cURL?

Meniru Permintaan GET Pelayar dengan PHP dan cURL

Apabila cuba mendapatkan semula kandungan daripada pelayan web menggunakan cURL, anda mungkin menghadapi percanggahan berbanding dengan memuatkan kandungan yang sama dalam pelayar web. Ini kerana penyemak imbas web membenamkan maklumat tambahan dalam permintaan mereka, yang selalunya diperlukan untuk pengesahan dan berfungsi dengan betul.

Untuk meniru permintaan GET seperti pelayar dengan tepat, anda mesti mengkonfigurasi cURL dengan pengepala dan tetapan yang sesuai. Begini cara anda boleh melakukannya:

Ejen Pengguna: Rentetan ejen pengguna mengenal pasti jenis penyemak imbas ke pelayan. Gunakan CURLOPT_USERAGENT untuk menetapkan ejen pengguna tersuai, seperti 'Mozilla/4.0 (serasi; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'.

Kuki: Tapak web mungkin menggunakan kuki untuk tujuan pengesahan atau penjejakan. Untuk menyokong kuki, gunakan CURLOPT_COOKIE, CURLOPT_COOKIEFILE atau CURLOPT_COOKIEJAR.

Pengesahan SSL: Jika permintaan menggunakan HTTPS (protokol selamat), cURL mungkin perlu mengesahkan sijil pelayan. Lumpuhkan pengesahan sijil menggunakan CURLOPT_SSL_VERIFYPEER untuk mengelakkan kemungkinan ralat.

Berikut ialah versi ubah suai kod anda yang menggabungkan tetapan ini:

<code class="php">$url = "https://new.aol.com/productsweb/subflows/ScreenNameFlow/AjaxSNAction.do?s=username&f=firstname&l=lastname";
$agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
var_dump($result);</code>

Dengan mengkonfigurasi tetapan ini, anda boleh meniru GET seperti penyemak imbas minta dengan lebih berkesan dan berpotensi menyelesaikan sebarang isu yang anda alami semasa memuatkan halaman dengan cURL.

Atas ialah kandungan terperinci Bagaimanakah saya boleh meniru permintaan GET pelayar dengan PHP dan cURL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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