2013-03-21 5 views
5

मेरे पास कोड का एक टुकड़ा है जिसे किसी भी यूआरएल को प्राप्त करने के लिए डिज़ाइन किया गया है और इसे वेब से नीचे दबाया गया है। अब तक यह ठीक काम कर रहा है जब तक किसी को यह इस URL दिया:एक दूरस्थ फ़ाइल को कर्ल करने में असमर्थ

http://www.aspensurgical.com/static/images/aspen_hill-rom_logo.png

अगर मैं अपने ब्राउज़र से यह मारा, तब भी वह अच्छे से पता चलता। लेकिन जब मैंने उसे नीचे कर्ल करने की कोशिश, मैं मिलता है:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>403 Forbidden</title> 
</head><body> 
<h1>Forbidden</h1> 
<p>You don't have permission to access /static/images/aspen_hill-rom_logo.png 
on this server.</p> 
<hr> 
<address> Server at www.aspensurgical.com Port 80</address> 
</body></html> 

कर्ल कोड मैं का उपयोग कर रहा है:

$ch = curl_init(str_replace(' ', '%20', $url)); 
$fh = fopen($local_file, "w"); 
curl_setopt($ch, CURLOPT_FILE, $fh); 
curl_exec($ch); 
curl_close($ch); 

उनके सर्वर किसी भी तरह साकार मैं एक सामान्य ब्राउज़र नहीं कर रहा हूँ और मुझे बूटिंग है ?

उत्तर

8

उनके पास यह देखने के लिए उपयोगकर्ता की जांच है कि आप कौन हैं। सामान्य ब्राउज़र के उपयोगकर्ता जोड़ें जोड़ें और आपको ठीक होना चाहिए।

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0"); 

यहां codepad में उदाहरण का उदाहरण है।

+2

आप, श्रीमान, एक बहुत बड़ी कुकी के पात्र हैं। अनेक अनेक धन्यवाद! – Anthony

+1

क्या आप उपयोगकर्ता की व्याख्या कर सकते हैं, क्रोम, सफारी और अन्य ब्राउज़र के बारे में, हमें उन्हें जोड़ने की आवश्यकता क्यों है? – Naeem

+0

@Naeem प्रत्येक ब्राउज़र अपने स्वयं के उपयोगकर्ता एजेंट स्ट्रिंग को स्वयं पहचानने के लिए भेजता है। सामान्य खोज इंजन बॉट उपयोगकर्ता एजेंट स्ट्रिंग में दिखाए जाते हैं जो वे खोज इंजन के लिए काम करते हैं। यही कारण है कि कुछ वेबसाइटें इस स्ट्रिंग में खोदती हैं कि यह देखने के लिए कि पृष्ठ का अनुरोध कौन करता है। – Ranty

1

अनावश्यक यातायात को अवरुद्ध करने के लिए कुछ सर्वर, केवल ब्राउज़र से किसी भी डाउनलोड की अनुमति देते हैं। इसलिए, ऐसे सर्वरों को डुप्लिकेट करने के लिए, कर्ल में --user-agent का एक अतिरिक्त विकल्प है, जो चाल करता है!

मैं अपने विंडोज 7 पीसी से कर्ल का उपयोग करता हूं, गॉव स्थापित किया है।

उदाहरण

curl --user-agent "Mozilla/4.0" http://www.example.com/archives/abc.txt --output pqr.txt 
संबंधित मुद्दे