项目需求,在请求服务器的时候需要发送cookie
查找资料一般都是说这个方法bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )
但是它并不能发送到服务器
- 设置
cookie
的方式
// 通过头部
header("Set-Cookie: g=121");
// 通过setcookie函数设置
setcookie('name', 'value', time() + 10, '/',$url1);
// 还有一个通过JS传递COOKIE的
document.cookie = "username=Darren;path=/;domain=weblinux/test.php"
- 后俩经过测试,发现使用
curl
可以。注意,多个cookie
之间要用;
号隔开
curl_setopt($ch,CURLOPT_COOKIE, "g=".$token.';'.'PHPSESSID='.$_COOKIE['PHPSESSID'] );
public function http_get($url,$token)
{
$ch = curl_init();
// 请求时带cookie参数
curl_setopt($ch,CURLOPT_COOKIE, "g=".$token.';'.'PHPSESSID='.$_COOKIE['PHPSESSID'] );
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if ($response === FALSE) {
return false;
}
curl_close($ch);
return $response;
}
$url = 'http://test/test.php';
$res = http_get($url,121);
echo '<pre>';
print_r($res);
- 在
http://test/test.php
页面
$res = $_COOKIE;
echo '<pre>';
print_r($res);
- 推荐一个打印头部的
PHP函数