Php 使用curl并将cookie存储为变量
我有一个curl函数,可以访问一个网站,登录到该网站,存储cookie文件,然后可以稍后读取cookie文件访问通常需要登录的页面 我面临的问题是,我想使用php变量保存和检索cookie文件,但似乎无法使其工作Php 使用curl并将cookie存储为变量,php,variables,curl,Php,Variables,Curl,我有一个curl函数,可以访问一个网站,登录到该网站,存储cookie文件,然后可以稍后读取cookie文件访问通常需要登录的页面 我面临的问题是,我想使用php变量保存和检索cookie文件,但似乎无法使其工作 $username = "myusername"; function getUrl($url, $method='', $vars='') { $ch = curl_init(); if ($method == 'post') { curl_setopt($ch, CURLOP
$username = "myusername";
function getUrl($url, $method='', $vars='') {
$ch = curl_init();
if ($method == 'post') {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies/$username.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies/$username.txt");
$buffer = curl_exec($ch);
curl_close($ch);
return $buffer;
}
我假设语法是错误的,并不是说curl不能将变量作为位置处理?问题在于
$username
变量的范围。因为它在函数外部,所以在函数内部不可用。您应该添加用户名作为函数的参数,或者使用global
关键字,以便可以在函数内部访问它
有关更多信息,请参阅。是否存在
cookies/
文件?它可由web服务器用户写入吗?是和是。我知道,因为如果我给它命名任何东西(这不是一个变量),即使.txt文件不存在,它也会创建它。这基本上就是我的目标,除了使用变量而不是硬编码文本谢谢!全局$用户名;函数内部修复了我的问题!