使用 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 }
View Code

参数说明:参数1为访问的URL,参数2为post数据(不填则为GET),参数3为提交的$cookies,参数4为是否返回$cookies。

以上是关于使用 curl() 函数实现不同站点之间注册用户的同步的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 curl 协商到不同的域

3.2.4 Google Tag Manager实战指南——跨站跟踪

PHP curl_setopt函数用法介绍

是否可以使用 HTML5 本地存储在不同站点的页面之间共享数据?

Django 管理站点,更改不同用户的模型可见性

使用 PHP 中的 curl 连接到在证书包中显示过期根证书的站点