PHP的header函数用来发送Http头信息,我在使用中,有个场景,就是代理请求的场景。
从服务器A代理请求服务器B,然后把B的回包透传回客户端浏览器。
这里面尤其重要的是Cookie,因为我要实现Cookie换域,因为Cookie种在服务器B的域名上,我要替换其种在A的域名上,于是就有了这么一个代码:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 $ch = curl_init ();curl_setopt ($ch , CURLOPT_URL, $url );curl_setopt ($ch , CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7' );curl_setopt ($ch , CURLOPT_RETURNTRANSFER, true );curl_setopt ($ch , CURLOPT_HEADER, true );curl_setopt ($ch , CURLOPT_CONNECTTIMEOUT, 5 );curl_setopt ($ch , CURLOPT_TIMEOUT, 5 );curl_setopt ($ch , CURLOPT_SSL_VERIFYPEER, false );$result = curl_exec ($ch );$temp = explode ("\r\n\r\n" , $result , 2 );$header = $temp [0 ];$content = $temp [1 ];$matches = array ();$ret = preg_match_all ('#^Set-Cookie.*$#m' , $header , $matches );if ($ret ) { foreach ($matches [0 ] as $cookieinfo ) { $cookieinfo = str_replace ('server.b.domain.com' , 'server.a.domain.com' , $cookieinfo ); header ($cookieinfo ); } }