php新浪微博登录接口实例代码

 更新时间:2016年11月25日 17:23  点击:2156
在做微博登陆之前是需要申请到APP KEY 和App Secret ,这个的申请方式请去 open.weibo.com 申请相关内容。

在官网也有相关的开发文档http://open.weibo.com/wiki/可以查看相关资料。
我这里下载的php的SDK直接进行的web网站应用。
下载SDK,配置好config文件。

 

 代码如下 复制代码

<?php
header('Content-Type: text/html; charset=UTF-8');
 
define( "WB_AKEY" , 'xxxxxxxxxx' );
define( "WB_SKEY" , 'xxxxxxxxxxxxxxxxxxxxxxxxx' );
define( "WB_CALLBACK_URL" , 'http://xxxxxxxxxxxx/callback.php' );//回调地址
*这里的回调地址是指如果用户同意授权,页面跳转至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE     //YOUR_REGISTERED_REDIRECT_URI 就是你的回调地址。
那就第一步需要首先引导用户进行授权。


include_once( 'config.php' );
include_once( 'saetv2.ex.class.php' );
 
$o = new SaeTOAuth( WB_AKEY , WB_SKEY );
 
$code_url = $o->getAuthorizeURL( CANVAS_PAGE );
 
echo "<a href=$code_url>授权</a>";


//授权地址为:
 
https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI</pre>

如果用户同意授权之后,在你的回调地址里需要获取 换取Access Token 来调用接口。获取信息,等等。。。

 代码如下 复制代码

if($_REQUEST['code']){
echo "sds";
$keys = array();
$keys['code'] = $_REQUEST['code'];
$keys['redirect_uri'] = CANVAS_PAGE;
$tt= new SaeTOAuth( WB_AKEY , WB_SKEY );
$bb = $tt->getAccessToken('code',$keys);
var_dump($bb);
}

在成功获取到AccessToken之后,可以调用saetv2.ex.class.php的一切封装好的函数进行操作,例如,我这里做登陆功能就需要获取用户的信息:

 代码如下 复制代码


/**
* 根据用户UID或昵称获取用户资料
*
* 按用户UID或昵称返回用户资料,同时也将返回用户的最新发布的微博。
* <br />对应API:users/show
*
* @access public
* @param mixed $uid_or_name 用户UID或微博昵称。
* @return array
*/
function show_user( $uid_or_name )
{
return $this->request_with_uid( 'https://api.t.sina.com.cn/users/show.json' , $uid_or_name );
}

给自己网站上的图片添加水印,在图片上留下属于自己的信息,这有两个好处:一是宣传自己的品牌,二是就算带图片的文章被转载了,也会自动的留下了版权。

本文主要实现了php图片上传自动给图片加水印,在下篇中我会给出用php添加文字水印的代码。

php给图片加水印其实很简单,没有想象的那么神奇,就是利用了php里面的一个GD库。说起GD库,其实就是php里面一个专门用于处理图片有关的扩展,比如我们熟悉的验证码、生成缩略图,包括今天所说的php给图片加水印都是要有GD库的支持。

提示:新安装的php环境,可能需要开启GD库,开启方法:打开php.ini,去掉extension=php_gd2.dll前面的“;”然后重启apache/iis即可。

实现并不复杂,核心代码还不到20行,主要是掌握几个函数就行了。

实现源码:

 代码如下 复制代码

<?php
 $ori_img = "images/13801220684507.jpg"; //原图
 $water_img = "logo.png"; //水印
 $new_img = "images/daixiaorui.jpg"; //生成水印后的图片
 
 $original = getimagesize($ori_img); //得到图片的信息,可以print_r($original)发现它就是一个数组
 $watermark = getimagesize($water_img);
 
 $s_original = imgCreateFrom($ori_img, $original[2]); //$original[2]是图片类型,其中1表示gif、2表示jpg、3表示png
 $s_watermark = imgCreateFrom($water_img, $watermark[2]);
 
 $posX = $original[0] - $watermark[0]-6; //X坐标(右下角)
 $poxY = $original[1] - $watermark[1]-3; //Y坐标(右下角)

 //打水印
 imagecopy($s_original, $s_watermark, $posX, $poxY, 0, 0, $watermark[0], $watermark[1]);
 //header("Content-type:image/jpeg");
 //imagejpeg($s_original); //向浏览器输出图片
 $loop = imagejpeg($s_original, $new_img); //生成新的图片(jpg格式),如果用imagepng可以生成png格式
 if($loop){
  echo "水印添加成功!";
 }
 
 //根据文件类型 创建一个新图象
 function imgCreateFrom($img_src, $val){
  switch($val){
   case 1 : $img = imagecreatefromgif($img_src);
    break;
   case 2 : $img = imagecreatefromjpeg($img_src);
    break;
   case 3 : $img = imagecreatefrompng($img_src);
    break;
  }
  return $img;
 } 
?>

给图片添加水印除了用基础的GD库实现,其实还可以ImageMagick这个工具,它的功能更强大,不过一般没多大需求,就用上面这个代码了。

虽然php 中的header()函数 下载文件不支持断点续传功能但有时我们还真需要此功能,如我们下载txt,图片文件时如果直接是个连接估计是直接打开了而不是下载了,那么我们可如何实现下载呢。
 代码如下 复制代码

<?php

/**
 * 文件下载
 *
**/

header("Content-type:text/html;charset=utf-8");

download('web/www.111cn.net .txt', 'txt文件下载');
 
function download($file, $down_name){

 $suffix = substr($file,strrpos($file,'.')); //获取文件后缀
 $down_name = $down_name.$suffix; //新文件名,就是下载后的名字

 //判断给定的文件存在与否
 if(!file_exists($file)){
  die("您要下载的文件已不存在,可能是被删除");
 }
 $fp = fopen($file,"r");
 $file_size = filesize($file);
 //下载文件需要用到的头
 header("Content-type: application/octet-stream");
 header("Accept-Ranges: bytes");
 header("Accept-Length:".$file_size);
 header("Content-Disposition: attachment; filename=".$down_name);
 $buffer = 1024;
 $file_count = 0;
 //向浏览器返回数据
 while(!feof($fp) && $file_count < $file_size){
  $file_con = fread($fp,$buffer);
  $file_count += $buffer;
  echo $file_con;
 }
 fclose($fp);
}

?>

需求是把之前网站的一个mssql2000的数据库转换成mysql数据库,并且新的网站采用不同的程序,因此还要把数据库中的数据根据字段的不同,和字段数据规则的不同进行转换。

1.不同数据库类型直接的数据库转换

navicat是个很好的数据库管理软件,可以用它进行不同类型数据库直接的转换,以下链接详细说明如何用navicat将mssql2000数据库转换成mysql数据库。

2.不同结构数据库之间的数据转换

不同数据库结构之间的数据转换存在几个问题,①字段不同,甚至无法一一对应 ②字段格式不同,要转换成目标数据库字段的设计格式 ③sql语句结合php程序转换

这是把之前一个downplus下载系统的数据库转换成phpcms的数据库。

直接上代码,有这方面需求的研究代码吧。

站点1 软件站

①导入所有软件到软件表v95_soft

 代码如下 复制代码
insert into v95_soft(id,catid,title,soft,soft_name,pinyin,thumb,keywords,size,start,inputtime,updatetime,auth,property)
select softid,softclassid,seotitle,appname,softname,softphoneticism,IcoImage,softkeywords,softsize,softscore,
unix_timestamp(SoftInsertDate),unix_timestamp(softcreatedate),softlicence,softproperty
from dp_softlist;

②写sql设status为99

 代码如下 复制代码
update v95_soft set status=99;

③到后台更新全站url。然后更新title为空的,软件名称

 代码如下 复制代码
update v95_soft set title=soft_name where title='';

④导入到v95_soft_date

 代码如下 复制代码
insert into v95_soft_data(id,content,language,website,icon,softos)
select softid,softintro,softlanguage,softauthorurl,IcoImage,softos
from dp_softlist;

⑤执行php转换程序,导入下载地址

http://www.xxx.com/admin.php?m=admin&c=index&a=down

 代码如下 复制代码
public function down(){
 set_time_limit(0);
 $sql = "select id from v95_soft_data ";
 $result = $this->db->query($sql);
 while ($r = mysql_fetch_assoc($result)) {
  //$softid = 11;
  $softid = $r['id'];
  $sql = "select fileurlname,fileurl,fileftpid from dp_softfiles where softid = $softid ";
  $downfile = $this->db->query($sql);
  $downfiles = array();
  while ($r = mysql_fetch_assoc($downfile)) {
   $isbigfile = 0;
   if (!$r['fileurlname']) {
    $sql = "select soft_name from v95_soft where id = $softid ";
    $result2 = $this->db->query($sql);
    while ($r2 = mysql_fetch_assoc($result2)) {
     $soft_name = $r2['soft_name'];
    }
    $r['fileurlname'] = $soft_name;
   }
   if(12 == $r['fileftpid']){
    $isbigfile = 1;
   }
   $downfiles[] = array('fileurl'=>$r['fileurl'],'filename'=>$r['fileurlname'],'isbigfile'=>$isbigfile);
  }
  $downfiles = array2string($downfiles);
  //var_dump($downfiles);exit;
  $sql = "update v95_soft_data set downfiles = '$downfiles' where id = $softid ";
  $this->db->query($sql);
 }
 echo 'OK';
}

⑥软件单位和大小转换

 代码如下 复制代码
update v95_soft set size=size/1000,unit='MB' where size>1000 and size<1000000;
update v95_soft set size=size/1000000,unit='GB' where size>1000000;

⑦导入标签,到v95_keyword和v95_keyword_data

 代码如下 复制代码
insert into v95_keyword(id,keyword) select tagid,tagname from dp_tag;
update v95_keyword set siteid=1;

⑧执行php转换程序,匹配标签到关键字

http:///admin.php?m=admin&c=index&a=transe

php代码:

 代码如下 复制代码
public function transe(){
 set_time_limit(0);
 $sql = "select tagid,softidlist from dp_tag";
 $result = $this->db->query($sql);
 while($r = mysql_fetch_assoc($result)){
  //var_dump($r);exit;
  $tags = $r['softidlist'];
  $tags = explode(",", $tags);
  $tags = array_filter($tags);
  //var_dump($tags);exit;
  $tagid = $r['tagid'];
  //echo $tagid;exit;
  foreach ($tags as $tag) {
   $sql="insert into v95_keyword_data(tagid,siteid,contentid) values('$tagid','1','$tag')";
   $this->db->query($sql);
  }
 }
 echo 'OK';
}

调整格式

 代码如下 复制代码
update v95_keyword_data set contentid=CONCAT(contentid,'-12');

⑩点击率

 代码如下 复制代码

insert into v95_hits(hitsid,catid) select id,catid from v95_soft;
//可以不用转,太慢了

update v95_hits as a left join dp_softlist as b on a.hitsid=b.softid
set a.weekviews=b.softweekhits,a.monthviews=b.softmonthhits,a.dayviews=b.softdayhits,a.views=b.softallhits;
 
update v95_hits set hitsid=concat('c-12-',hitsid);

十一 相关文章

 代码如下 复制代码

http:///admin.php?m=admin&c=index&a=related (最后执行,很慢)
php代码:

public function related(){
 set_time_limit(0);
 $sql = "select id,keywords from v95_soft";
 $result = $this->db->query($sql);
 while ($r = mysql_fetch_assoc($result)) {
  $softid = $r['id'];
  $keywords = $r['keywords'];
  $keywords = explode(",", $keywords);
  $related = '';
  foreach ($keywords as $keyword) {
   $sql = "select softidlist from dp_tag where tagname='$keyword' ";
   $result2 = $this->db->query($sql);
   while ($r2 = mysql_fetch_assoc($result2)) {
    $related = $related.','.$r2['softidlist'];
   }
  }
  $related = explode(",", $related);
  $related = array_filter($related);
  shuffle($related);
  $related = array_slice($related, 0,10);
  $related = implode("|", $related);
  $sql =  "update v95_soft_data set relation = '$related' where id = $softid ";
  $this->db->query($sql);
 }
 echo 'OK';
}

站点2 单机站

①由于类别不同,要先把原先类别改成现在的类别id

 代码如下 复制代码
update downtb set ClassID=217 where ClassID=1;
update downtb set ClassID=218 where ClassID=2;
update downtb set ClassID=219 where ClassID=3;
update downtb set ClassID=220 where ClassID=4;
update downtb set ClassID=221 where ClassID=5;
update downtb set ClassID=222 where ClassID=6;
update downtb set ClassID=223 where ClassID=7;
update downtb set ClassID=224 where ClassID=8;
update downtb set ClassID=225 where ClassID=9;
update downtb set ClassID=226 where ClassID=10;
update downtb set ClassID=233 where ClassID=11;

②导入主表到v95_danji

 代码如下 复制代码
insert into v95_danji(id,catid,title,thumb,soft_name,size,inputtime,updatetime,auth,language,downurl)
select DownID,ClassID,SeoTitle,thumb,DownName,Sizes,unix_timestamp(addtime),unix_timestamp(addtime),
Shouquan,Languages,DownIntro1 from downtb;

③后台更新全站url,然后设status为99,没有seo标题的采用单机游戏名称

 代码如下 复制代码
update v95_danji set status=99;
update v95_danji set title=soft_name where title='';

④大小单位转换,下载地址格式调整

 代码如下 复制代码
update v95_danji set size=size/1000,unit='MB' where size>1000 and size<1000000;
update v95_danji set size=size/1000000,unit='GB' where size>1000000;
update v95_danji set downurl=replace(downurl,'@@**@@本地下载','');

⑤修改下载地址
要判断单机游戏填写的地址
如果填写的

 代码如下 复制代码
game=z1.9553.com
game2=z2.9553.com

以此类推

/admin.php?m=admin&c=index&a=downurl(废弃)

⑥导入到v95_danji_data

 代码如下 复制代码
insert into v95_danji_data(id,content,gameid) select DownID,DownIntro,game_id from downtb;

⑦单机标签转换
1、新增单机站标签到v95_keyword表

 代码如下 复制代码
insert into v95_keyword(id,keyword) select TagID+31616,TagName from tagtb;
update v95_keyword set siteid=2 where siteid=0;

2、执行php程序
此时记住当前v95_keyword中siteid为1的最大id,更改php程序,再填入keywords,执行

http:///admin.php?m=admin&c=index&a=danji

php代码:

 代码如下 复制代码
public function danji(){
 set_time_limit(0);
 $sql = "select DownID,ToTagIDs from downtb";
 $result = $this->db->query($sql);
 while ($r = mysql_fetch_assoc($result)) {
  $id=$r['DownID'];
  $ToTagIDs = explode(",", $r['ToTagIDs']);
  $ToTagIDs = array_filter($ToTagIDs);
  foreach ($ToTagIDs as $key => $value) {
   $ToTagIDs[$key] = $value+31682;
  }
  //var_dump($ToTagIDs);exit;
  foreach ($ToTagIDs as $tagid) {
   $sql = "select keyword from v95_keyword where id=$tagid ";
   $keywords = $this->db->query($sql);
   while ($r = mysql_fetch_assoc($keywords)) {
    $keyword[] = $r['keyword'];
   }
 
  }
  $new_keyword = implode(",", $keyword);
  $sql="update v95_danji set keywords='$new_keyword' where id=$id";
  $this->db->query($sql);
  unset($keyword);
  unset($ToTagIDs);
 }
 echo 'OK';
}

3、执行php程序

http:///admin.php?m=admin&c=index&a=danji2

php代码:

 代码如下 复制代码
public function danji2(){
 set_time_limit(0);
 $sql = "select id,keywords from v95_danji";
 $result = $this->db->query($sql);
 while ($r = mysql_fetch_assoc($result)) {
  $contentid = $r['id'];
  $keywords = $r['keywords'];
  $tags = explode(",", $keywords);
  foreach ($tags as $tag) {
   $sql = "select id from v95_keyword where keyword='$tag' and siteid=2";
   $id = $this->db->query($sql);
   while ($r = mysql_fetch_assoc($id)) {
    $id = $r['id'];
    $sql = "insert into v95_keyword_data(tagid,siteid,contentid) values('$id',2,'$contentid')";
    $this->db->query($sql);
   }
  }
  unset($tags);
 }
 echo 'OK';
}

4、修改v95_keyword_data表siteid为2的contentid格式

 代码如下 复制代码
update v95_keyword_data set contentid=CONCAT(contentid,'-14') where siteid=2;

⑧使点击率可用

 代码如下 复制代码

insert into v95_hits(hitsid,catid) select CONCAT('c-14-',id),catid from v95_danji;

这是一个简单的利用jquery与php做的一个聊天室的源码,我们这里定时利用ajax读取数据库并进行刷新了,下面直接参上源码
 代码如下 复制代码
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
var chat = {
 init:function(){
  chat.first();
  $('#chat_btn').unbind('click').click(function(){
   chat.send();
  });
  $('#my_chat').keyup(function(){
   if(event.keyCode == 13){
    chat.send();
   }
  }); www.111cn.net
 },
 first:function(){
  $.getJSON('data.php',{
   action:'first',
   type:'l'
  },function(data){
   chat.btn_status._true();
   $('#mwebtime').html(data.time);
   $('#chat textarea').val(data.chat);
   $('#chat textarea').stop(true,true).animate({scrollTop:9999}, 1);
   chat.socket();
  });
 },
 send:function(){
  chat.btn_status._false();
  $.getJSON('send.php',{
   txt:$('#my_chat').val(),
   type:'l'
  },function(data){
   if(data.status==200){
    chat.btn_status._false();
    $('#my_chat').val('');
    setTimeout(function(){
     chat.btn_status._true();
    },2000);
   }
  });
 },
 socket:function(){
  $.getJSON('data.php',{
   action:'while',
   type:'l'
  },function(data){
   $('#mwebtime').html(data.time);
   $('#chat textarea').val(data.chat);
   $('#chat textarea').stop(true,true).animate({scrollTop:9999}, 1);
   chat.socket();
  });
 },
 btn_status:{
  _false:function(){
   $('#chat_btn').html('等待').attr('disabled',true);
  },
  _true:function(){
   $('#chat_btn').html('发言').attr('disabled',false);
  }
 }
}
chat.init();
</script>
</head>
 
<body>
<div id="chat">
 <textarea wrap="physical" style="line-height:20px;font-size:12px;height:100px;width:200px;"></textarea>
 <BR />
 <input id="my_chat" type="text" />
 <button id="chat_btn" disabled="disabled">发言</button>
</div>
<div id="mwebtime"></div>
</body>
</html>
data.php
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pramga: no-cache");
set_time_limit(0);
$get = $_GET['action'];
$type = $_GET['type'];
$file = $type.'.txt';
if(isset($get) && isset($type) && file_exists($file)){
 switch($get){
  case 'first':
   $chat = file_get_contents($file);
   $json=array(
    'status' => 200,
    'time' => gmdate("s"),
    'chat' => $chat,
   );
   echo json_encode($json);
   break; www.111cn.net
  case 'while':
   $oldsize = filesize($file);
   $newsize = filesize($file);
   while(true){
    if($oldsize!=$newsize){
     $chat = file_get_contents($file);
     $json=array(
      'status' => 200,
      'time' => gmdate("s"),
      'chat' => $chat,
     );
     echo json_encode($json);
     exit;
    }
    clearstatcache();
    $newsize = filesize($file);
    usleep(10000);
   }
   break;
 }
}
?>
send.php
<?php
$json = array();
$txt = isset($_GET['txt'])?$_GET['txt']:'';
$type = isset($_GET['type'])?$_GET['type']:'';
if($txt!=''){
 $file = $type.".txt";
 if(file_exists($file)){
  $fp = fopen($file,"a");
  $str = "rn".'Admin:'.$txt;
  //$str = $txt."n"//linux;
  fwrite($fp, $str);
  fclose($fp);
  $json['status']=200;
  echo json_encode($json);
  exit;
 }
}
?>
[!--infotagslink--]

相关文章

  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • c# 三种方法调用WebService接口

    这篇文章主要介绍了c# 三种方法调用WebService接口的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • vue接口请求加密实例

    这篇文章主要介绍了vue接口请求加密实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-12
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • CI框架开发新浪微博登录接口源码完整版

    首先来看下流程:流程原理: 1.通过code获得access_token通过授权,并获取用户的信息(包括用户u_id)(这个u_id在后面的第三方登录表里面叫sina_id,那个表是需要自己建的) 2.查询第三方登录表,如果不存在用户sina_id,分2...2014-05-31
  • php导出csv格式数据并将数字转换成文本的思路以及代码分享

    php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07
  • ecshop商品无限级分类代码

    ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25
  • 几种延迟加载JS代码的方法加快网页的访问速度

    本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13