当前位置: 编程技术>php
本页文章导读:
▪php将会员数据导入到ucenter的代码
我们要用的会员表结构 代码如下: create table if not exists `net_111cnnet` ( `id` int(11) not null auto_increment, `username` varchar(32) default null, `add_time` int(11) default null, `email` varchar(50) default null, `password` varcha.........
▪php 无限级数据JSON格式及JS解析
Flash需要JSON格式的数据,于是,就有了如下代码:(PHP实现,C#类似,JSON库自己去下吧~~) 代码如下: //--查询用户下线信息,返回JSON,用于flash if(!empty($_GET['action'])&&!empty($_GET['invite'])){ /.........
▪php下使用strpos需要注意 === 运算符
代码如下:<?php /* 判断字符串是否存在的函数 */ function strexists($haystack, $needle) { return !(strpos($haystack, $needle) === FALSE);//注意这里的"===" } /* Test */ $mystring = 'abc'; $findme = 'a'; $pos = strpos($mystring, $.........
[1]php将会员数据导入到ucenter的代码
来源: 互联网 发布时间: 2013-11-30
我们要用的会员表结构
create table if not exists `net_111cnnet` (
`id` int(11) not null auto_increment,
`username` varchar(32) default null,
`add_time` int(11) default null,
`email` varchar(50) default null,
`password` varchar(50) default null,
`last_login` int(4) default null
primary key (`id`)
) engine=myisam default charset=utf8 auto_increment=1 ;
核心代码:
$host ='localhost';
$db ='abc';
$user='root';
$password ='root';
//数据库教程连接配置,由于我的ucenter表与现在的会员表在同一个数据库所以就一次连接就行了。
try {
$conn = mysql教程_connect($host,$user,$password);
mysql_select_db($db,$conn);
} catch (dbexception $e) {
exit('database connect fail!');// 数据库出错处理处
}
$sql ="select * from net_111cnnet "; //查出要导入到ucenter所有会员数据
$query = mysql_query( $sql,$conn);
while( $rs = mysql_fetch_array( $query ))
{
$uc_sql = "select * from uc_members where username='".$rs['username']."'";
$data = mysql_query( $uc_sql ) ;
if( $data )
{
}
else
{
$salt = substr(uniqid(rand()), -6);
$password = md5($rs['password'].$salt);//按照ucenter规则生成用户登陆密码
mysql_query("insert into uc_members set uid= '".$rs['id']."', username='".$rs['username']."', password='$password', email='".$rs['email']."', lastlogintime ='".$rs['last_login']."', regdate='".$rs['add_time']."', salt='$salt'"); //把数据插入到uc_members表
mysql_query("insert into uc_memberfields set uid='".$rs['id']."'");//更新uc_memberfields表。
}
}
exit('所有用户己导入到ucenter');
总结:
导入数据到ucenter与论坛,或其它 cms用户同小只要操作ucenter的两张表就行了,uc_members,uc_memberfields哦,涉及到更新的字段也不多,所以总体来讲把它系统的数据导入到ucenter进行会员同止步是很简单的。
代码如下:
create table if not exists `net_111cnnet` (
`id` int(11) not null auto_increment,
`username` varchar(32) default null,
`add_time` int(11) default null,
`email` varchar(50) default null,
`password` varchar(50) default null,
`last_login` int(4) default null
primary key (`id`)
) engine=myisam default charset=utf8 auto_increment=1 ;
核心代码:
代码如下:
$host ='localhost';
$db ='abc';
$user='root';
$password ='root';
//数据库教程连接配置,由于我的ucenter表与现在的会员表在同一个数据库所以就一次连接就行了。
try {
$conn = mysql教程_connect($host,$user,$password);
mysql_select_db($db,$conn);
} catch (dbexception $e) {
exit('database connect fail!');// 数据库出错处理处
}
$sql ="select * from net_111cnnet "; //查出要导入到ucenter所有会员数据
$query = mysql_query( $sql,$conn);
while( $rs = mysql_fetch_array( $query ))
{
$uc_sql = "select * from uc_members where username='".$rs['username']."'";
$data = mysql_query( $uc_sql ) ;
if( $data )
{
}
else
{
$salt = substr(uniqid(rand()), -6);
$password = md5($rs['password'].$salt);//按照ucenter规则生成用户登陆密码
mysql_query("insert into uc_members set uid= '".$rs['id']."', username='".$rs['username']."', password='$password', email='".$rs['email']."', lastlogintime ='".$rs['last_login']."', regdate='".$rs['add_time']."', salt='$salt'"); //把数据插入到uc_members表
mysql_query("insert into uc_memberfields set uid='".$rs['id']."'");//更新uc_memberfields表。
}
}
exit('所有用户己导入到ucenter');
总结:
导入数据到ucenter与论坛,或其它 cms用户同小只要操作ucenter的两张表就行了,uc_members,uc_memberfields哦,涉及到更新的字段也不多,所以总体来讲把它系统的数据导入到ucenter进行会员同止步是很简单的。
[2]php 无限级数据JSON格式及JS解析
来源: 互联网 发布时间: 2013-11-30
Flash需要JSON格式的数据,于是,就有了如下代码:(PHP实现,C#类似,JSON库自己去下吧~~)
//--查询用户下线信息,返回JSON,用于flash
if(!empty($_GET['action'])&&!empty($_GET['invite'])){
//固定参数请求才会返回信息
if($_GET['action']=='getinfo'&&$_GET['invite']==1){
//数据实体,一个实体类
class UcInvite{
//---显示用的数据信息
public $fuid; //用户id
public $funame; //用户名
public $furl; //用户空间地址
//---显示用的数据信息
public $fchilds; //子类集合
}
$invitecount = 0; //总数量,用于记录全部下线数量
//递归实现方法
function GetShowTreeInvite($uid){
global $_SGLOBAL,$invitecount;
//组织sql语句并查询,表中fuid是下线的id,uid是父id,fusername是用户名字
$inv_sql = "select fuid,fusername from ".tname("invite")." where uid = ".$uid;
$inv_query = $_SGLOBAL['db']->query($inv_sql);
//下表及返回数组
$index = 0;
$inviteTree = Array();
$invitezcount = 0; //每个子类下的数量
//循环添加信息到数组
while($v = $_SGLOBAL['db']->fetch_array($inv_query)){
$ui = new UcInvite();
$ui->fuid = $v['fuid'];
$ui->funame = $v['fusername'];
$ui->furl = "/home/space.php?uid=".$v['fuid'];
//调用自己,递归查询子类信息
$ui->fchilds=GetShowTreeInvite($v['fuid']);
//插入返回的数组中
$inviteTree[$index]=$ui;
$index++;
$invitecount++;
$invitezcount++;
}
//记录当前下线的下线数量
$inviteTree['invitezcount'] = $invitezcount;
//返回数组信息
return $inviteTree;
}
$fuid = empty($_GET['fuid'])?$space[uid]:$_GET['fuid'];
//根据当前登录用户ID查询信息,并返回一个集合
$inviteTree = GetShowTreeInvite($fuid);
//记录总下线数
$inviteTree['invitecount'] = $invitecount;
//引入json库,这里用的是Services_JSON
//因为并不确定服务器都是PHP5.2以上版本,所以没有用自带的JSON函数
require_once('../plugins/JSON/JSON.php');
//json输出
$json = new Services_JSON();
echo $json->encode($inviteTree);
exit;
}else{
echo '请求参数错误!';
exit;
}
}
//--查询用户下线信息,返回JSON,用于flash
以上代码返回一个JSON字符串,如:
{'0':{'fuid':'950','funame':'郭梓原','furl':'/home/space.php?uid=950','fchilds':{'invitezcount':0}},'invitezcount':1,'invitecount':1}
这里只查询了一个
接下来用JS进行以下解析:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
//fuid 用户ID
//funame 用户名称
//furl 用户主页地址
//invitezcount 每个用户的子类数量
//invitecount 该用户的所有下级数量
var str = "";
function GetShow(obj,qi,index){
for (var one in obj)
{
for(var key in obj[one])
{
index++;
if(key=="fchilds"&&obj[one][key]['invitezcount']!=0){
var aqi = qi;
if(index>1)aqi+=" "
GetShow(obj[one][key],aqi,index)
}
if(key != 'fchilds'){
if(key=="fuid"){
str += qi+key+"="+obj[one][key] + ",";
}else{
str += key+"="+obj[one][key] + ",";
}
if(key == "furl"){
str+="<br/>";
}
}
}
if(one=="invitezcount"||one=="invitecount"){
str+=qi+one+"="+obj[one]+"<br/>";
}
}
}
//固定参数do=charadegarden&action=getinfo&invite=1,fuid为测试时使用,不填写将调用系统当前登录的用户ID
var url = 'http://localhost/home/space.php?do=charadegarden&action=getinfo&invite=1&fuid=344';
$.get(url,function(html){
//获得json并转为对象
if(html){
var obj = eval("["+html+"]");
GetShow(obj[0],"",1)
document.write(str);
document.write("<br/><br/><br/><br/>");
document.write("<b>JSON格式:</b><br/>");
document.write(html);
}
});
</script>
代码如下:
//--查询用户下线信息,返回JSON,用于flash
if(!empty($_GET['action'])&&!empty($_GET['invite'])){
//固定参数请求才会返回信息
if($_GET['action']=='getinfo'&&$_GET['invite']==1){
//数据实体,一个实体类
class UcInvite{
//---显示用的数据信息
public $fuid; //用户id
public $funame; //用户名
public $furl; //用户空间地址
//---显示用的数据信息
public $fchilds; //子类集合
}
$invitecount = 0; //总数量,用于记录全部下线数量
//递归实现方法
function GetShowTreeInvite($uid){
global $_SGLOBAL,$invitecount;
//组织sql语句并查询,表中fuid是下线的id,uid是父id,fusername是用户名字
$inv_sql = "select fuid,fusername from ".tname("invite")." where uid = ".$uid;
$inv_query = $_SGLOBAL['db']->query($inv_sql);
//下表及返回数组
$index = 0;
$inviteTree = Array();
$invitezcount = 0; //每个子类下的数量
//循环添加信息到数组
while($v = $_SGLOBAL['db']->fetch_array($inv_query)){
$ui = new UcInvite();
$ui->fuid = $v['fuid'];
$ui->funame = $v['fusername'];
$ui->furl = "/home/space.php?uid=".$v['fuid'];
//调用自己,递归查询子类信息
$ui->fchilds=GetShowTreeInvite($v['fuid']);
//插入返回的数组中
$inviteTree[$index]=$ui;
$index++;
$invitecount++;
$invitezcount++;
}
//记录当前下线的下线数量
$inviteTree['invitezcount'] = $invitezcount;
//返回数组信息
return $inviteTree;
}
$fuid = empty($_GET['fuid'])?$space[uid]:$_GET['fuid'];
//根据当前登录用户ID查询信息,并返回一个集合
$inviteTree = GetShowTreeInvite($fuid);
//记录总下线数
$inviteTree['invitecount'] = $invitecount;
//引入json库,这里用的是Services_JSON
//因为并不确定服务器都是PHP5.2以上版本,所以没有用自带的JSON函数
require_once('../plugins/JSON/JSON.php');
//json输出
$json = new Services_JSON();
echo $json->encode($inviteTree);
exit;
}else{
echo '请求参数错误!';
exit;
}
}
//--查询用户下线信息,返回JSON,用于flash
以上代码返回一个JSON字符串,如:
{'0':{'fuid':'950','funame':'郭梓原','furl':'/home/space.php?uid=950','fchilds':{'invitezcount':0}},'invitezcount':1,'invitecount':1}
这里只查询了一个
接下来用JS进行以下解析:
代码如下:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
//fuid 用户ID
//funame 用户名称
//furl 用户主页地址
//invitezcount 每个用户的子类数量
//invitecount 该用户的所有下级数量
var str = "";
function GetShow(obj,qi,index){
for (var one in obj)
{
for(var key in obj[one])
{
index++;
if(key=="fchilds"&&obj[one][key]['invitezcount']!=0){
var aqi = qi;
if(index>1)aqi+=" "
GetShow(obj[one][key],aqi,index)
}
if(key != 'fchilds'){
if(key=="fuid"){
str += qi+key+"="+obj[one][key] + ",";
}else{
str += key+"="+obj[one][key] + ",";
}
if(key == "furl"){
str+="<br/>";
}
}
}
if(one=="invitezcount"||one=="invitecount"){
str+=qi+one+"="+obj[one]+"<br/>";
}
}
}
//固定参数do=charadegarden&action=getinfo&invite=1,fuid为测试时使用,不填写将调用系统当前登录的用户ID
var url = 'http://localhost/home/space.php?do=charadegarden&action=getinfo&invite=1&fuid=344';
$.get(url,function(html){
//获得json并转为对象
if(html){
var obj = eval("["+html+"]");
GetShow(obj[0],"",1)
document.write(str);
document.write("<br/><br/><br/><br/>");
document.write("<b>JSON格式:</b><br/>");
document.write(html);
}
});
</script>
这样,两个无限级的操作就完成了,结果截图:
珍惜劳动成果,虽说内容不多,可是也是一个一个字打上的,转载请注明!!关注爱拼可乐吧
[3]php下使用strpos需要注意 === 运算符
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php
/*
判断字符串是否存在的函数
*/
function strexists($haystack, $needle) {
return !(strpos($haystack, $needle) === FALSE);//注意这里的"==="
}
/*
Test
*/
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
// Note our use of ===. Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
// 简单的使用 "==" 号是不会起作用的,需要使用 "===",因为 a 第一次出现的位置为 0
if ($pos === false) {
echo "The string '$findme' was not found in the string '$mystring'";
} else {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position $pos";
}
// We can search for the character, ignoring anything before the offset
// 在搜索字符的时候可以使用参数 offset 来指定偏移量
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, not 0
?>
最新技术文章: