我試圖避免cURL通過「CURLOPT_COOKIEJAR」將cookie會話存儲到實際文件中。所以我創建了一個方法來將cookies解析爲局部變量 - 然後通過「CURLOPT_COOKIE」來恢復cookie會話。PHP - 使用cURL將cookie會話存儲到變量/內存中
我通過
preg_match_all("/^Set-cookie: (.*?);/ism", $header, $cookies);
切出的餅乾要使用 「CURLOPT_COOKIE」 我們採取的是key = value,並通過它們分開 「;」。然而(據我所知),CURLOPT_COOKIE不允許你扔各種旗幟,即。到期,安全標誌等。
更新2014年1月29日下午6:45
所以我覺得在那裏發生CURLOPT_FOLLOWLOCATION實際發生我的問題。我不認爲這與國旗有關。它似乎不像我手動cookie會話正在更新時遵循一個新的位置(即一個網站有2-3重定向追加各種cookie /會話)。這實際上是有道理的,因爲使用CURLOPT_COOKIEJAR將直接獲取/更新頭重定向上發送的cookie。所以,我嘗試在抓取/追加最新的cookie的同時創建手動重定向路徑 - 但是由於某種原因,此方法不起作用。
更新二零一四年一月三十零日下午4:22
幾乎得到這個想通了。很快就會用答案更新。事實證明,我的方法工作得很好,只是正確跳過手動重定向頁面的問題。
更新1/30/2014 4:51 pm 問題解決了 - 下面回答自己。
但是你可以使用curlopt頭來設置cookies,嗯? –
@ MaximKhan-Magomedov我們使用curlopt頭來設置cookie,但不能存儲。cURL使用cookiejar - 但需要在磁盤上有固定文件,這就是您想要避免的情況(在大規模生產環境中)。將cookie會話留在磁盤上存在安全風險。 –