कर्ल के साथ वेब ब्राउज़र के GET अनुरोध का अनुकरण करना
कर्ल का उपयोग करके वेब पेजों को पुनः प्राप्त करने का प्रयास करते समय, आपको ऐसी त्रुटियां मिल सकती हैं जो इससे उत्पन्न होती हैं अपरिचित या अपूर्ण अनुरोध शीर्षलेख। ऐसा इसलिए है क्योंकि कर्ल मूल रूप से वेब ब्राउज़र के GET अनुरोध हेडर का अनुकरण नहीं करता है। :
CURLOPT_USERAGENT का उपयोग करके कर्ल अनुरोध के लिए एक वैध उपयोगकर्ता एजेंट नियुक्त करें। यह सर्वर को सूचित करता है कि आप किस ब्राउज़र और ऑपरेटिंग सिस्टम का अनुकरण कर रहे हैं।
कुकीज़ संभालें (वैकल्पिक):
सर्वर अनुरोधों को प्रमाणित करने के लिए कुकीज़ का उपयोग कर सकता है। कुकीज़ प्रबंधित करने के लिए, CURLOPT_COOKIE, CURLOPT_COOKIEFILE, और CURLOPT_COOKIEJAR का उपयोग करें।
SSL प्रमाणपत्र सत्यापित करें:
यदि अनुरोध शामिल है HTTPS, आपको SSL प्रमाणपत्र सत्यापित करने की आवश्यकता हो सकती है। प्रमाणपत्र सत्यापन अक्षम करने के लिए CURLOPT_SSL_VERIFYPEER का उपयोग करें (सुरक्षित कनेक्शन के लिए अनुशंसित नहीं)।
प्रिंट करने के लिए जानकारी डीबग करें और अनुरोध-प्रतिक्रिया प्रक्रिया में अंतर्दृष्टि प्रदान करें, CURLOPT_VERBOSE सक्षम करें।
यहां एक है अद्यतन उदाहरण जिसमें ये सुधार शामिल हैं:
$url = "https://new.aol.com/productsweb/subflows/ScreenNameFlow/AjaxSNAction.do?s =उपयोगकर्ता नाम&f=पहला नाम&l=अंतिम नाम";
$एजेंट = 'मोज़िला/4.0 (संगत; एमएसआईई 6.0; विंडोज़ एनटी 5.1; एसवी1; .NET सीएलआर 1.0.3705; .NET सीएलआर 1.1.4322)';
$ch = कर्ल_इनिट();
कर्ल_सेटोप्ट($ch, CURLOPT_SSL_VERIFYPEER, गलत);
कर्ल_सेटॉप ($ch, CURLOPT_VERBOSE, सत्य);
कर्ल_सेटोप्ट($ch, CURLOPT_RETURNTRANSFER, सत्य);
कर्ल_सेटॉप्ट($ch, CURLOPT_USERAGENT, $एजेंट);
कर्ल_सेटोप्ट($ch, CURLOPT_URL, $url);
$परिणाम = कर्ल_एक्सईसी($ch);
var_dump($परिणाम);