使用 curl() 函数实现不同站点之间注册用户的同步
Posted afee666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 curl() 函数实现不同站点之间注册用户的同步相关的知识,希望对你有一定的参考价值。
一 需求
在A站点注册一个新用户,那么,在B站点也会被同时注册
二 思路
在A站点注册的同时,调用API接口实现在B站点也会被同时注册
三 实现
主要代码如下:
1 function http_curl($url,$post=‘‘,$cookie=‘‘, $returnCookie=0){ 2 $curl = curl_init(); 3 curl_setopt($curl, CURLOPT_URL, $url); 4 curl_setopt($curl, CURLOPT_USERAGENT, ‘Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)‘); 5 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 6 curl_setopt($curl, CURLOPT_AUTOREFERER, 1); 7 curl_setopt($curl, CURLOPT_REFERER, "http://XXX"); 8 if($post) { 9 curl_setopt($curl, CURLOPT_POST, 1); 10 curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post)); 11 } 12 if($cookie) { 13 curl_setopt($curl, CURLOPT_COOKIE, $cookie); 14 } 15 curl_setopt($curl, CURLOPT_HEADER, $returnCookie); 16 curl_setopt($curl, CURLOPT_TIMEOUT, 10); 17 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 18 $data = curl_exec($curl); 19 if (curl_errno($curl)) { 20 return curl_error($curl); 21 } 22 curl_close($curl); 23 if($returnCookie){ 24 list($header, $body) = explode("\r\n\r\n", $data, 2); 25 preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches); 26 $info[‘cookie‘] = substr($matches[1][0], 1); 27 $info[‘content‘] = $body; 28 return $info; 29 }else{ 30 return $data; 31 } 32 }
参数说明:参数1为访问的URL,参数2为post数据(不填则为GET),参数3为提交的$cookies,参数4为是否返回$cookies。
以上是关于使用 curl() 函数实现不同站点之间注册用户的同步的主要内容,如果未能解决你的问题,请参考以下文章
3.2.4 Google Tag Manager实战指南——跨站跟踪