微信拉取线上用户,更新本地


1、openidusers.php

<?php
		//set_time_limit(600); 
        set_time_limit(0);
		header("Content-type: text/html; charset=utf-8"); 
		session_start();
        $opts = array(
            'http'=>array(
			
                'method'=>"GET",
                'timeout'=>1000,
				
            )
        );

        $context = stream_context_create($opts);
        $gettoken=file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxx&secret=8ab524866eba5384cc4f6f4acxxx", false, $context);
        $res=json_decode($gettoken,true);
        $token=$res["access_token"];
		$_SESSION["token"]=$token;
        $getopenid=file_get_contents("https://api.weixin.qq.com/cgi-bin/user/get?access_token={$token}&next_openid=", false, $context);
        $res2=json_decode($getopenid,true);
		$openid=$res2['data']['openid'];
        foreach($openid as $k=>$v){
            $getuser=file_get_contents("https://api.weixin.qq.com/cgi-bin/user/info?access_token={$token}&openid={$v}", false, $context);
            $user=json_decode($getuser,true);
            $userlist[]=$user;
        }
		
		$_SESSION["userllist"]=$userlist;
		//var_dump($userlist);
		


2、upd2

<?php
		header("Content-type: text/html; charset=utf-8"); 
        session_start();
        set_time_limit(0);
		//var_dump($_SESSION['userllist']);
		//var_dump($_SESSION['token']);
		
		$link=mysql_connect("localhost","root","") or die('连接数据库失败!');
		
		$db_selected = mysql_select_db('vshop', $link);
		
		mysql_query("set names utf8;"); 
		
		$query = 'select openid from wp_follow';  //为特定更新数据,限制了一下条件【select openid from wp_follow 】
		
		$result = mysql_query($query);
		
		while($row = mysql_fetch_array($result)){
			$openidlist[]=$row['openid'];			
		}
		//var_dump($openidlist);die();
		
		
		$userlist=$_SESSION['userllist'];
		
		
		//$token=$_SESSION['token'];
		$token = "gh_4df8efbb2caf";		

	//先排除: 线上的用户数据和本地对比,如果线上的数据没有在本地中,则将其设置为status = 0
	/*$new_userlist = array();
	foreach ($userlist as $key => $value) {
		$new_userlist[] = $value['openid'];
	}
	

	$i = 0;
	$m = 0;
	foreach($openidlist as $k=>$v){
		//var_dump($v['nickname']);die();
			if(in_array($v,$new_userlist)){
					
					@$sql="update wp_follow set status = 1,is_love=0 where openid='".$v."'";
				//echo $sql;
				@mysql_query($sql);
					$i = $i + 1;
				
			}else{
				$m = $m + 1;
					// @$sql2='insert into wp_follow(token,openid,nickname,sex,city,province,country,language,headimgurl,mTime,status,is_love) values("'.$token.'","'.$v['openid'].'","'.$v['nickname'].'","'.$v['sex'].'","'.$v['city'].'","'.$v['province'].'","'.$v['country'].'","'.$v['language'].'","'.$v['headimgurl'].'","'.$v['subscribe_time'].'",1,0)';
					// @mysql_query($sql2);

				@$sql="update wp_follow set status = 0,is_love=2 where openid='".$v."'";
				//echo $sql;
				@mysql_query($sql);
					
			}
	}
	echo "更新总用户为:".$i."<br>";
	echo "不一样的数据有:".$m;*/



		//再更新  用线上用户更新本地数据库用户信息,如果线上的逐个用户没有在本在数据库用户数组里,那么进行insert;在的话更新		
		$i = 0;
		$m = 0;
	foreach($userlist as $k=>$v){
		//var_dump($v['nickname']);die();
			if(in_array($v["openid"],$openidlist)){
					
					@$sql="update wp_follow set nickname='".$v['nickname']."',sex='".$v['sex']."',city='".$v['city']."',province='".$v['province']."',country='".$v['country']."',language='".$v['language']."',headimgurl='".$v['headimgurl']."',status = 1,is_love=0,subscribe_time='".$v['subscribe_time']."' where openid='".$v['openid']."'";
					echo $sql;
					@mysql_query($sql);
					$i = $i + 1;
				
			}else{
				$m = $m + 1;
					@$sql2='insert into wp_follow(token,openid,nickname,sex,city,province,country,language,headimgurl,subscribe_time,status,is_love) values("'.$token.'","'.$v['openid'].'","'.$v['nickname'].'","'.$v['sex'].'","'.$v['city'].'","'.$v['province'].'","'.$v['country'].'","'.$v['language'].'","'.$v['headimgurl'].'","'.$v['subscribe_time'].'",1,0)';
					@mysql_query($sql2);
					
			}
	}
	echo "更新总用户为:".$i."<br>";
	echo "不一样的数据有:".$m;


		
		



你可能感兴趣的:(微信拉取线上用户,更新本地)