2008-10-29 17 views
9

मुझे एक PHP एप्लिकेशन मिला है जिसे किसी अन्य वेब पेज से सामग्री को पकड़ने की आवश्यकता है, और जिस वेब पेज को मैं पढ़ रहा हूं उसे कुकी की आवश्यकता है।दूरस्थ वेब पृष्ठों के लिए कुकीज़ सहेजें

मुझे कुकी (http://groups.google.com/group/comp.lang.php/msg/4f618114ab15ae2a) होने के बाद इस कॉल को कैसे बनाया जाए, इस बारे में जानकारी मिली है, हालांकि मुझे नहीं पता कि कुकी कैसे उत्पन्न करें, या कुकी कैसे सहेजी जाती है।

उदाहरण के लिए, wget के माध्यम से इस वेब पेज पढ़ने के लिए मैं निम्नलिखित है:

wget --quiet --save-cookies cookie.file --output-document=who.cares \ 
    http://remoteServer/login.php?user=xxx&pass=yyy 

wget --quiet --load-cookies cookie.file --output-document=documentiwant.html \ 
    http://remoteServer/pageicareabout.html 

... मेरे सवाल का कैसे मैं PHP में '--save-कुकी' सा करते है, ताकि मैं अनुवर्ती पीएचपी stream_context_create में कुकी का उपयोग कर सकते हैं/file_get_contents ब्लॉक:

$opts = array(http'=> array(
    'method'=> "GET", 
    'header'=> 
    "Accept-language: en\r\n" . 
    "Cookie: **NoClueAtAll**\r\n" 
) 
); 

$context = stream_context_create($opts); 
$documentiwant = file_get_contents("http://remoteServer/pageicareabout.html", 
    0, $context); 

उत्तर

5

आप शायद cURL का उपयोग कर बेहतर होगा। कुकी हैंडलिंग विकल्पों को सेट करने के लिए curl_setopt का उपयोग करें।

यदि यह केवल एक ही चीज़ है, तो आप हेडर प्राप्त करने के लिए Live HTTP Headers के साथ फ़ायरफ़ॉक्स का उपयोग कर सकते हैं, फिर इसे अपने PHP कोड में पेस्ट करें।

14

शाज़म - यह काम किया! Thx soooo बहुत! इस पेज पर मामला किसी और stumbles में, यहाँ क्या विस्तार से की जरूरत थी:

  1. cURL स्थापित (के लिए मुझे के रूप में सरल रूप में it'was 'sudo apt-get PHP5-कर्ल स्थापित' ubuntu में)
  2. बदलाव के बाद करने के लिए पहले सूचीबद्ध पीएचपी:

    <?php 
    
    $cr = curl_init('http://remoteServer/login.php?user=xxx&pass=yyy'); 
    curl_setopt($cr, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($cr, CURLOPT_COOKIEJAR, 'cookie.txt'); 
    $whoCares = curl_exec($cr); 
    curl_close($cr); 
    
    $cr = curl_init('http://remoteServer/pageicareabout.html'); 
    curl_setopt($cr, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($cr, CURLOPT_COOKIEFILE, 'cookie.txt'); 
    $documentiwant = curl_exec($cr); 
    curl_close($cr); 
    
    ?> 
    

कोड स्निपेट से ऊपर भारी http://www.weberdev.com/get_example-4555.html से प्रभावित।

संबंधित मुद्दे