我试图避免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会话留在磁盘上存在安全风险。 –