PHP简易微博
php 简易雪花算法
php 简易雪花算法PHP简易雪花算法雪花算法,也被称为Twitter的雪花算法,是一种用于生成全局唯一ID的算法。
它的设计目标是在分布式系统中生成唯一的ID,以保证数据的一致性和准确性。
在PHP中,我们可以使用简易的雪花算法来生成唯一的ID。
雪花算法的原理很简单,它将一个64位的整数分成了几个部分:- 第一个部分是一个符号位,永远为0,表示正数。
- 第二部分是一个41位的时间戳,记录生成ID的时间。
- 第三部分是一个10位的机器ID,用来标识生成ID的机器。
- 第四部分是一个12位的序列号,用来标识同一毫秒内生成的不同ID。
在PHP中,我们可以使用以下代码实现简易的雪花算法:```php<?phpclass Snowflake {private $machineId; // 机器IDprivate $epoch; // 开始时间戳,可以根据自己的需求设置private $lastTimestamp = -1; // 上一次生成ID的时间戳private $sequence = 0; // 序列号public function __construct($machineId) {$this->machineId = $machineId;$this->epoch = strtotime('2020-01-01 00:00:00') * 1000; // 将开始时间转换为毫秒}public function generateId() {$timestamp = $this->getTimestamp();if ($timestamp < $this->lastTimestamp) {throw new Exception('Clock moved backwards!');}if ($timestamp == $this->lastTimestamp) {$this->sequence = ($this->sequence + 1) & 4095; // 序列号部分使用了与操作,限制在12位范围内if ($this->sequence == 0) {$timestamp = $this->tilNextMillis($this->lastTimestamp);}} else {$this->sequence = 0;}$this->lastTimestamp = $timestamp;// 生成ID$id = (($timestamp - $this->epoch) << 22) | ($this->machineId << 12) | $this->sequence;return $id;}private function getTimestamp() {return round(microtime(true) * 1000);}private function tilNextMillis($lastTimestamp) {$timestamp = $this->getTimestamp();while ($timestamp <= $lastTimestamp) {$timestamp = $this->getTimestamp();}return $timestamp;}}// 使用示例$snowflake = new Snowflake(1);$id = $snowflake->generateId();echo $id;>```以上代码就是一个简单的PHP雪花算法的实现。
php获取新浪微博数据API的实例代码
php获取新浪微博数据API的实例代码分享下php取得新浪微博数据API的一个例子,学习下在php编程中,使用新浪微博数据API进行开发的方法,感兴趣的朋友可以参考下。
php获取新浪微博数据API要取得新浪微博的数据,可以通过其提供的API,地址:open.weibo/wiki/API文档_V2。
获取数据的方法:复制代码代码示例:<?php/***通过新浪微博数据API取得微博数据*edit:jbxue*/functiongetWeiboData(){$count=15;//参数source后面输入你的授权号$url="api.weibo/2/statuses/home_timeline.json?source=12 3456789&count=".$count."&page=1";echo$url.'<br/>';$curl=curl_init();curl_setopt($curl,CURLOPT_URL,$url);//设置是否显示header信息0是不显示,1是显示默认为0//curl_setopt($curl,CURLOPT_HEADER,0);//设置cURL参数,要求结果保存到字符串中还是输出到屏幕上。
0显示在屏幕上,1不显示在屏幕上,默认为0curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//要验*的用户名密码curl_setopt($curl,CURLOPT_USERPWD,"username:password" );$data=curl_exec($curl);curl_close($curl);$result=json_decode($data,true);echo'<pre>';print_r($result);echo'</pre>';}>说明:json_decode($data)会输出一个对象,而json_decode($data,true)则强制输出为数组。
微博页面php代码收集
//图片高度计算// 原始图片$img_path="/bmiddle/6e5c06b1jw1dymgm4p1gzj.jpg";//$img_path=$bmiddle_pic;if($img_path!=""){$max_width = 206;$max_height = 10000;list($width, $height) = getimagesize($img_path);$ratioh = $max_height/$height;$ratiow = $max_width/$width;$ratio = min($ratioh, $ratiow);// 新的高度和宽度$picW = intval($ratio*$width);$picH = intval($ratio*$height);}//微博时间显示$str="Tue Nov 06 09:37:29 +0800 2012";//$currentTimeStamp2=strtotime($str);$currentTimeStamp = time();$wbTimeStamp=strtotime($str);$difTimeStamp=$currentTimeStamp-$wbTimeStamp;$difMminutes=floor($difTimeStamp/60);$showTime = date("m月d日H:i",$wbTimeStamp);if ($difMminutes<60){$showTime=$difMminutes."分钟前";}elseif($difMminutes<60*12 and $difMminutes>=60){$showTime="今天".date("H:i",$wbTimeStamp);}//截取字符串$user_screen_name_temp = utf8Substr($strText,$fromlength,$cutlength);function utf8Substr($str, $from, $len){return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s','$1',$str);}//数字字符处理函数10000变1万+ function count4($str){$bar=floor($str);if ($bar>100000){$rt=floor($bar/10000)."万";}elseif ($bar>10000){$rt=floor($bar/10000)."万+";}//elseif($bar>1000){// $rt=floor($bar/1000)."千+";// }else{$rt=$str;}return $rt;}//获取传递的columnidif ($_REQUEST['columnid']!=""){$columnid=$_REQUEST['columnid'];}else{$columnid=1624; }//定义微博信息数组$statusesShow=array(//'created_at'=> $showTime,'id'=>$id,'title'=>$textinfo,'referer'=>$auto_titlelink,'url'=>$auto_titlelink,'width'=>$original_pic_w,'height'=>$original_pic_h,'thumbnail_pic'=>$thumbnail_pic,'bmiddle_pic'=>$bmiddle_pic,'original_pic'=>$original_pic,'screen_name'=>$screen_name,'profile_image_url'=>$profile_image_url,'created_at'=>$showTime,'reposts_count'=>count4($reposts_count),'comments_count'=>count4($comments_count));//将每条微博信息作为数组存入主数组$statusesShowAll[$n]=$statusesShow;$n=$n+1;//微博条数//$statusesShowAll["total_number"]=$n;echo json_encode($statusesShowAll);//php 数组转json$arr = array('name' =>'陈毅鑫','nick' => '深空','contact' => array('email' => 'shenkong at qq dot com','website' => '',));$json_string = json_encode($arr);echo $json_string;$obj = json_decode($json_string);$arr = (array) $obj;print_r($arr);//写文件$filename = 'test.txt';$somecontent = "添加这些文字到文件\n";// 首先我们要确定文件存在并且可写。
46款 开源微博工具开源软件
46款开源微博工具开源软件微博客平台 StatusNetStatusNet 的前身是 Laconica,是一个开源的微博客平台软件,采用 PHP开发。
StatusNet是个相当老牌的开源微博程序,相当多的国外微博网站都是基于它架设的。
不过StatusNet对于服务器的要求的确是多。
StatusNet的功能还是比较丰富的,除了微博必备的所有...更多StatusNet信息多媒体微博客平台 SharetronixSharetronix (blogtronix) 作为一个多媒体微博客平台,具备微博客必备的特性——相互关注、私信、收藏等,同时还具有内建的图片上传和视频分享(支持来自YouTube、MySpace、MetaCafe、Vimeo和Revver的视频)功能。
Sharetronix还拥有一套好友邀请系统,可以...更多Sharetronix信息微博客系统 Blurt.itBlurt.it是一个基于PHP/MySQL搭建的微博客系统,类似于Twitter。
用户可以在一个开放或私有的讨论群中与其他用户互交沟通。
此项目已改到这里。
更多Blurt.it信息微博客系统 LaconicaLaconica (音"luh-KAWN-ih-kuh")是一个微型博客系统,类似于twitter和叽歪网之类的东西Laconica 现在已经改名为StatusNet 使用Laconica 系统搭建的网站有:http://identi.ca/...更多Laconica信息微博客平台 JaikuEngineJaikuEngine是一个2007年被Google收购的微博客平台。
但是今年,Google决定在Google Code上将其完全开源。
JaikuEngine能够部署在Google AppEngine上,所以使用JaikuEngine 架设微博客社区可以说是一个完全免费的解决方案,您只需要拥有一个Google帐户,然后开...更多JaikuEngine信息微博客程序 EasyTalkEasyTalk 是一个国产的开源微博客程序,界面挺像饭否的,API接口也和饭否类似,基于PHP和MySQL。
新浪微博操作指南
新浪微博新手手册第一章微博入门--------------------------------------------------------------------------------------------------21.1什么是微博--------------------------------------------------------------------------------------------------21.2如何注册微博-----------------------------------------------------------------------------------------------21.3如何登录微博-----------------------------------------------------------------------------------------------31.4新手快速使用微博攻略-----------------------------------------------------------------------------------3第二章微博强大功能--------------------------------------------------------------------------------------------42.1发微博的几种方式----------------------------------------------------------------------------------------42.2话题----------------------------------------------------------------------------------------------------------62.3发图片-------------------------------------------------------------------------------------------------------72.4发视频-------------------------------------------------------------------------------------------------------72.5发音乐--------------------------------------------------------------------------------------------------------82.6投票----------------------------------------------------------------------------------------------------------92.7私信----------------------------------------------------------------------------------------------------------102.8评论、转发、收藏功能----------------------------------------------------------------------------------102.9关注和粉丝-------------------------------------------------------------------------------------------------10-------------------------------------------------------------------------------------------------------112.11个人标签---------------------------------------------------------------------------------------------------11第三章手机玩转微博--------------------------------------------------------------------------------------------113.1手机短信、彩信更新微博-------------------------------------------------------------------------------113.2手机WAP更新微博--------------------------------------------------------------------------------------123.3手机客户端更新微博-------------------------------------------------------------------------------------12第四章帐号设置--------------------------------------------------------------------------------------------------1 54.1昵称----------------------------------------------------------------------------------------------------------154.2个性域名----------------------------------------------------------------------------------------------------154.3修改密码----------------------------------------------------------------------------------------------------154.4密码及密保资料查询-------------------------------------------------------------------------------------164.5微博登录名忘记-------------------------------------------------------------------------------------------16第五章认证&合作-----------------------------------------------------------------------------------------------16 5.1为什么要进行身份认证?------------------------------------------------------------------------------165.2如何进行V认证与合作---------------------------------------------------------------------------------165.3通过身份认证后是否有特权---------------------------------------------------------------------------17第六章微博新功能、新活动上线----------------------------------------------------------------------------176.1微博群------------------------------------------------------------------------------------------------------17---------------------------------------------------------------------------------------------------186.3勋章-----------------------------------------------------------------------------------------------------------196.4举报不良信息-----------------------------------------------------------------------------------------------20第一章微博入门1.1什么是微博可以把微博理解为“微型博客”或者“一句话博客”。
ASP.NET实现QQ、微信、新浪微博OAuth2.0授权登录
不管是腾讯还是新浪,查看他们的API,PHP都是有完整的接口,但对C#支持似乎都不是那么完善,都没有,腾讯是完全没有,新浪是提供第三方的,而且后期还不一定升级,NND,用第三方的动辄就一个类库,各种配置还必须按照他们约定的写,烦而且乱,索性自己写,后期的扩展也容易,看过接口后,开始以为很难,参考了几个源码之后发现也不是那么难,无非是GET或POST请求他们的接口获取返回值之类的,话不多说,这里只提供几个代码共参考,抛砖引玉了。
我这个写法的特点是,用到了Session,使用对象实例化之后调用Login() 跳转到登录页面,在回调页面调用Callback() 执行之后,可以从Session也可以写独立的函数(如:GetOpenID())中获取access_token或用户的唯一标识,以方便做下一步的操作。
所谓绑定就是把用户的唯一标识取出,插入数据库,和帐号绑定起来。
1.首先是所有OAuth类的基类,放一些需要公用的方法public abstract class BaseOAuth{ public HttpRequest Request = HttpContext.Current.Request; public HttpResponse Response = HttpContext.Current.Response; public HttpSessionState Session = HttpContext.Current.Session; public abstract void Login(); public abstract string Callback(); #region 内部使用函数 /// <summary> /// 生成唯一随机串防CSRF攻击 /// </summary> /// <returns></returns> protected string GetStateCode() { Random rand = new Random(); string data = DateTime.Now.ToString("yyyyMMddHHmmssffff") + rand.Next(1, 0xf423f).ToString(); MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] md5byte = puteHash(UTF8Encoding.Default.GetBytes(data)); return BitConverter.ToString(md5byte).Replace("-", ""); } /// <summary> /// GET请求 /// </summary> /// <param name="url"></param> /// <returns></returns> protected string GetRequest(string url) { HttpWebRequest httpWebRequest = .WebRequest.Create(url) asHttpWebRequest; httpWebRequest.Method = "GET"; httpWebRequest.ServicePoint.Expect100Continue = false; StreamReader responseReader = null; string responseData; try { responseReader = new StreamReader(httpWebRequest.GetResponse().GetResponseStream()); responseData = responseReader.ReadToEnd(); } finally { httpWebRequest.GetResponse().GetResponseStream().Close(); responseReader.Close(); } return responseData; } /// <summary> /// POST请求 /// </summary> /// <param name="url"></param> /// <param name="postData"></param> /// <returns></returns> protected string PostRequest(string url, string postData) { HttpWebRequest httpWebRequest = .WebRequest.Create(url) as HttpWebRequest; httpWebRequest.Method = "POST"; httpWebRequest.ServicePoint.Expect100Continue = false; httpWebRequest.ContentType = "application/x-www-form-urlencoded"; //写入POST参数 StreamWriter requestWriter = new StreamWriter(httpWebRequest.GetRequestStream()); try { requestWriter.Write(postData); } finally { requestWriter.Close(); } //读取请求后的结果 StreamReader responseReader = null; string responseData; try { responseReader = new StreamReader(httpWebRequest.GetResponse().GetResponseStream()); responseData = responseReader.ReadToEnd(); } finally { httpWebRequest.GetResponse().GetResponseStream().Close(); responseReader.Close(); } return responseData; } /// <summary> /// 解析JSON /// </summary> /// <param name="strJson"></param> /// <returns></returns> protected NameValueCollection ParseJson(string strJson) { NameValueCollection mc = new NameValueCollection(); Regex regex = new Regex(@"(\s*\bsp; } foreach (Match m in regex.Matches(strJson)) { mc.Add(m.Groups[2].V alue, m.Groups[3].Value); } return mc; } /// <summary> /// 解析URL /// </summary> /// <param name="strParams"></param> /// <returns></returns> protected NameValueCollection ParseUrlParameters(string strParams) { NameValueCollection nc = new NameValueCollection(); foreach (string p in strParams.Split('&')) { string[] ps = p.Split('='); nc.Add(ps[0], ps[1]); } return nc; } #endregion}2.QQ的OAuth类public class QQOAuth : BaseOAuth{ public string AppId = ConfigurationManager.AppSettings["OAuth_QQ_AppId"]; public string AppKey = ConfigurationManager.AppSettings["OAuth_QQ_AppKey"]; public string RedirectUrl = ConfigurationManager.AppSettings["OAuth_QQ_RedirectUrl"]; public const string GET_AUTH_CODE_URL = "https:///oauth2.0/authorize"; public const string GET_ACCESS_TOKEN_URL = "https:///oauth2.0/token"; public const string GET_OPENID_URL = "https:///oauth2.0/me"; /// <summary> /// QQ登录,跳转到登录页面 /// </summary> public override void Login() { //-------生成唯一随机串防CSRF攻击 string state = GetStateCode(); Session["QC_State"] = state; //state 放入Session string parms = "?response_type=code&" + "client_id=" + AppId + "&redirect_uri=" + Uri.EscapeDataString(RedirectUrl) + "&state=" + state; string url = GET_AUTH_CODE_URL + parms; Response.Redirect(url); //跳转到登录页面 } /// <summary> /// QQ回调函数 /// </summary> /// <param name="code"></param> /// <param name="state"></param> /// <returns></returns> public override string Callback() { string code = Request.QueryString["code"]; string state = Request.QueryString["state"]; //--------验证state防止CSRF攻击 if (state != (string)Session["QC_State"]) { ShowError("30001"); } string parms = "?grant_type=authorization_code&" + "client_id=" + AppId + "&redirect_uri=" + Uri.EscapeDataString(RedirectUrl) + "&client_secret=" + AppKey + "&code=" + code; string url = GET_ACCESS_TOKEN_URL + parms; string str = GetRequest(url); if (str.IndexOf("callback") != -1) { int lpos = str.IndexOf("("); int rpos = str.IndexOf(")"); str = str.Substring(lpos + 1, rpos - lpos - 1); NameValueCollection msg = ParseJson(str); if (!string.IsNullOrEmpty(msg["error"])) { ShowError(msg["error"], msg["error_description"]); } } NameValueCollection token = ParseUrlParameters(str); Session["QC_AccessToken"] = token["access_token"]; //access_token 放入Session return token["access_token"]; } /// <summary> /// 使用Access Token来获取用户的OpenID /// </summary> /// <param name="accessToken"></param> /// <returns></returns> public string GetOpenID() { string parms = "?access_token=" + Session["QC_AccessToken"]; string url = GET_OPENID_URL + parms; string str = GetRequest(url); if (str.IndexOf("callback") != -1) { int lpos = str.IndexOf("("); int rpos = str.IndexOf(")"); str = str.Substring(lpos + 1, rpos - lpos - 1); } NameValueCollection user = ParseJson(str); if (!string.IsNullOrEmpty(user["error"])) { ShowError(user["error"], user["error_description"]); } Session["QC_OpenId"] = user["openid"]; //openid 放入Session return user["openid"]; } /// <summary> /// 显示错误信息 /// </summary> /// <param name="code">错误编号</param> /// <param name="description">错误描述</param> private void ShowError(string code, string description = null) { if (description == null) { switch (code) { case "20001": description = "<h2>配置文件损坏或无法读取,请检查web.config</h2>"; break; case "30001": description = "<h2>The state does not match. You may be a victim of CSRF.</h2>"; break; case "50001": description = "<h2>可能是服务器无法请求https协议</h2>可能未开启curl支持,请尝试开启curl支持,重启web服务器,如果问题仍未解决,请联系我们"; break; default: description = "<h2>系统未知错误,请联系我们</h2>"; break; } Response.Write(description); Response.End(); } else { Response.Write("<h3>error:<h3>" + code + "<h3>msg:<h3>" + description); Response.End(); } }}3.新浪微博的OAuth类public class SinaOAuth : BaseOAuth{ public string AppKey = ConfigurationManager.AppSettings["OAuth_Sina_AppKey"]; public string AppSecret = ConfigurationManager.AppSettings["OAuth_Sina_AppSecret"]; public string RedirectUrl = ConfigurationManager.AppSettings["OAuth_Sina_RedirectUrl"]; public const string GET_AUTH_CODE_URL = "https:///oauth2/authorize"; public const string GET_ACCESS_TOKEN_URL = "https:///oauth2/access_token"; public const string GET_UID_URL = "https:///2/account/get_uid.json"; /// <summary> /// 新浪微博登录,跳转到登录页面 /// </summary> public override void Login() { //-------生成唯一随机串防CSRF攻击 string state = GetStateCode(); Session["Sina_State"] = state; //state 放入Session string parms = "?client_id=" + AppKey + "&redirect_uri=" + Uri.EscapeDataString(RedirectUrl) + "&state=" + state; string url = GET_AUTH_CODE_URL + parms; Response.Redirect(url); //跳转到登录页面 } /// <summary> /// 新浪微博回调函数 /// </summary> /// <returns></returns> public override string Callback() { string code = Request.QueryString["code"]; string state = Request.QueryString["state"]; //--------验证state防止CSRF攻击 if (state != (string)Session["Sina_State"]) { ShowError("The state does not match. You may be a victim of CSRF."); } string parms = "client_id=" + AppKey + "&client_secret=" + AppSecret + "&grant_type=authorization_code&code=" + code + "&redirect_uri=" + Uri.EscapeDataString(RedirectUrl); string str = PostRequest(GET_ACCESS_TOKEN_URL, parms); NameValueCollection user = ParseJson(str); Session["Sina_AccessToken"] = user["access_token"]; //access_token 放入Session Session["Sina_UId"] = user["uid"]; //uid 放入Session return user["access_token"]; } /// <summary> /// 显示错误信息 /// </summary> /// <param name="description">错误描述</param> private void ShowError(string description = null) { Response.Write("<h2>" + description + "</h2>"); Response.End(); }}4.微信的OAuth类public class WeixinOAuth : BaseOAuth{ public string AppId = ConfigurationManager.AppSettings["OAuth_Weixin_AppId"]; public string AppSecret = ConfigurationManager.AppSettings["OAuth_Weixin_AppSecret"]; public string RedirectUrl = ConfigurationManager.AppSettings["OAuth_Weixin_RedirectUrl"]; public const string GET_AUTH_CODE_URL = "https:///connect/qrconnect"; public const string GET_ACCESS_TOKEN_URL = "https:///sns/oauth2/access_token"; public const string GET_USERINFO_URL = "https:///sns/userinfo"; /// <summary> /// 微信登录,跳转到登录页面 /// </summary> public override void Login() { //-------生成唯一随机串防CSRF攻击 string state = GetStateCode(); Session["Weixin_State"] = state; //state 放入Session string parms = "?appid=" + AppId + "&redirect_uri=" + Uri.EscapeDataString(RedirectUrl) + "&response_type=code&scope=snsapi_login" + "&state=" + state + "#wechat_redirect"; string url = GET_AUTH_CODE_URL + parms; Response.Redirect(url); //跳转到登录页面 } /// <summary> /// 微信回调函数 /// </summary> /// <param name="code"></param> /// <param name="state"></param> /// <returns></returns> public override string Callback() { string code = Request.QueryString["code"]; string state = Request.QueryString["state"]; //--------验证state防止CSRF攻击 if (state != (string)Session["Weixin_State"]) { ShowError("30001"); } string parms = "?appid=" + AppId + "&secret=" + AppSecret + "&code=" + code + "&grant_type=authorization_code"; string url = GET_ACCESS_TOKEN_URL + parms; string str = GetRequest(url); NameValueCollection msg = ParseJson(str); if (!string.IsNullOrEmpty(msg["errcode"])) { ShowError(msg["errcode"], msg["errmsg"]); } Session["Weixin_AccessToken"] = msg["access_token"]; //access_token 放入Session Session["Weixin_OpenId"] = msg["openid"]; //access_token 放入Session return msg["access_token"]; } /// <summary> /// 显示错误信息 /// </summary> /// <param name="code">错误编号</param> /// <param name="description">错误描述</param> private void ShowError(string code, string description = null) { if (description == null) { switch (code) { case "20001": description = "<h2>配置文件损坏或无法读取,请检查web.config</h2>"; break; case "30001": description = "<h2>The state does not match. You may be a victim of CSRF.</h2>"; break; case "50001": description = "<h2>接口未授权</h2>"; break; default: description = "<h2>系统未知错误,请联系我们</h2>"; break; } Response.Write(description); Response.End(); } else { Response.Write("<h3>error:<h3>" + code + "<h3>msg:<h3>" + description); Response.End(); } }}5.web.config配置信息<appSettings> <!--QQ登录相关配置--> <add key="OAuth_QQ_AppId" value="123456789" /> <add key="OAuth_QQ_AppKey" value="25f9e794323b453885f5181f1b624d0b" /> <add key="OAuth_QQ_RedirectUrl" value="/oauth20/qqcallback.aspx" /> <!--新浪微博登录相关配置--> <add key="OAuth_Sina_AppKey" value="123456789" /> <add key="OAuth_Sina_AppSecret" value="25f9e794323b453885f5181f1b624d0b" /> <add key="OAuth_Sina_RedirectUrl" value="/oauth20/sinacallback.aspx" /> <!--微信登录相关配置--> <add key="OAuth_Weixin_AppId" value="wx123456789123" /> <add key="OAuth_Weixin_AppSecret" value="25f9e794323b453885f5181f1b624d0b" /> <add key="OAuth_Weixin_RedirectUrl" value="/oauth20/weixincallback.aspx" /></appSettings>。
PHP-微博 实验报告
中北大学基于开源代码的web应用实训报告学生姓名:学号:学院:软件学院专业:软件开发与测试题目:博客系统指导教师1.设计任务概述(包括系统总体框图及功能描述)系统需求分析微博是一个功能模块,主要用于网上信息的交互,具体功能如下:1、微博管理模块微博是一个自定义的微小博客,博主可以发照片。
发微博与朋友们分享。
2、个人信息模块个人呢信息模块是针对拥有微博的个人,它可根据自身的需求、需要随时地在微博上博主可以根据自己的需求改变用户名称及头像等相关信息,以及设置信息的显示方式。
3、好友管理管理博主对其添加的好友进行管理。
系统运行流程在此模拟了系统运行的背景:运行系统后,首先会弹出前台用户登录对话框,对用户的身份进行认证。
进入微博后,博主可以发微博,传照片,查看好友及个人信息等功能;后台设计主要为删除修改用户信息及微博信息。
2.功能模块详细设计登陆界面认证过程认证成功登陆后进入微博好友列表个人信息相册发微博发布失败发照片服务中心服务热线后台登陆设计后台登陆时对其身份进行认证认证成功认证失败后台登陆成功界面管理用户显示用户显示微博显示所有微博,删除微博数据库设计核心代码<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type"content="text/html;charset=gb2312"/><title>我的首页-随时随地分享身边的新鲜事</title><script type="text/javascript"src="js/scrolltop.js"></script><script type="text/javascript"src="js/buttonlabel.js"></script><script language="javascript">function form_check(){if(document.form1.newstext.value==""){alert("对不起,内容不能为空!")document.form1.newstext.focus()return false}}</script><link rel="stylesheet"type="text/css"href="css/style.css"><link rel="stylesheet"type="text/css"href="css/a_style.css"><link rel="stylesheet"type="text/css"href="css/fontsstyle.css"><?phpinclude"connect/sql.php";$sql_persional="select*from blog_userpersional";$result_persional=mysql_query($sql_persional);$row_persional=mysql_fetch_array($result_persional);?></head><body style="background-image:url(image/background.jpg);height:1650px;"><div style="position:absolute;top:0px;left:0px;height:55px;width:1350px; background:#D2D2D2"><img src="image/logo.png"width="150"height="55"style="position:absolute; left:150px"><div><a href="content/news_content.php"onclick="labelclick_top1()" onmouseover="mouseOver_top1()"onmouseout="mouseOut_top1()"target="content" ><label id="buttonlabel_top1"style="position:absolute;top:0px;left:400px; width:100px;height:55px;background:#D2D2D2"><h7_index_1>首页</h7_index_1></label></a><a href="content/friends_content.php"onclick="labelclick_top2()" onmouseover="mouseOver_top2()"onmouseout="mouseOut_top2()"target="content" ><label id="buttonlabel_top2"style="position:absolute;top:0px;left:500px; width:100px;height:55px;background:#D2D2D2"><h7_index_1>好友</h7_index_1></label></a><a href="content/persional_content.php"onclick="labelclick_top3()" onmouseover="mouseOver_top3()"onmouseout="mouseOut_top3()"target="content" ><label id="buttonlabel_top3"style="position:absolute;top:0px;left:600px;width:100px;height:55px;background:#D2D2D2"><h7_index_2>个人信息</h7_index_2></label></a></div><div><img src="image/logoharf.PNG"style="position:absolute;top:10px;left:925px" width="25"height="25"><label id="name_ontitle"style="position:absolute;top:10px;left:950px; width:200px;height:30px;background:#D2D2D2"><h8><?php echo $row_persional['name'];?></h8></label><label id="explain_ontitle"style="position:absolute;top:30px;left:1000px; width:250px;height:15px;background:#D2D2D2"><h8>--<?php echo $row_persional['explain'];?></h8></label></div></div><div style="position:absolute;top:250px;left:150px;width:150px;height:1200px; background:#FCC2C2"><div><a href="content/news_content.php"onclick="labelclick1()" onmouseover="mouseOver1()"onmouseout="mouseOut1()"target="content"><label id="buttonlabel1"style="position:absolute;top:70px;left:0px;width:150px; height:50px;"><h7>新鲜事</h7></label></a><a href="content/album_content.html"onclick="labelclick2()" onmouseover="mouseOver2()"onmouseout="mouseOut2()"target="content"><label id="buttonlabel2"style="position:absolute;top:120px;left:0px;width:150px; height:50px;"><h7>相 册</h7></label></a></div><div><a href="upload/publish_bolg.php"onclick="labelclick3()" onmouseover="mouseOver3()"onmouseout="mouseOut3()"target="content"><label id="buttonlabel3"style="position:absolute;top:200px;left:0px;width:150px; height:50px;"><h7>写微博</h7></label></a><a href="upload/publish_photo.php"onclick="labelclick4()" onmouseover="mouseOver4()"onmouseout="mouseOut4()"target="content"><label id="buttonlabel4"style="position:absolute;top:250px;left:0px;width:150px; height:50px;"><h7>发照片</h7></label></a></div></div><div style="position:absolute;top:250px;left:300px;width:650px;height:1200px; background:#FFC"align="justify"><div style="position:absolute;top:0px;left:0px;width:650px;height:50px;"><h1> 亲,坐上时光机,分享你的故事吧,有什么新鲜事要告诉大家?</h1> </div><div style="position:absolute;top:50px;left:50px;width:550px;height:150px"><form action="upload/dealpublishblog.php"method="post"name="form1" onsubmit="return form_check()"><textarea name="newstext"style="position:absolute;top:0px;left:0px; width:550px;height:100px;"></textarea><select name="publishway"style="position:absolute;top:118px;left:380px; width:90px;height:20px;"><option value="1">公开</option><option value="2">仅好友可见</option><option value="3">仅自己可见</option></select><input style="position:absolute;top:110px;left:480px;width:60px;height:30px" type="submit"value="发布"/></form></div><div style="position:absolute;top:200px;left:0px;width:650px;height:1000px" id="content"><iframe name="content"src="content/news_content.php"scrolling=no width=650height=1000marginwidth=0marginheight=0frameborder=0></iframe></div></div><div style="position:absolute;top:250px;left:950px;width:250px;height:1200px; background:#FF9"><div style="position:absolute;top:0px;left:0px;width:250px;"><img name="portraitimg"src="<?php echo$row_persional['image'];?>" style="position:absolute;top:20px;left:20px"width="100"height="100"><label style="position:absolute;top:30px;left:135px;width:110px; height:30px"><h9><?php echo$row_persional['name'];?></h9></label><label><img name="vipimg"src="image/vip.jpg"style="position:absolute; top:50px;left:150px"width="50px"height="50px"></label><label><img src="<h3></h3>"style="position:absolute;top:96px;left:152px" width="20px"height="20px"></label></div><div></div><div><iframe name="datetime"src="datetime.html"scrolling="no"width="250" height="250"marginheight="0"marginwidth="0"frameborder="0" style="position:absolute;top:200px;left:0px"></iframe></div><div title="覆盖层"style="position:absolute;top:195px;left:0px;height:10px; width:250px;background:#FF9"></div><div title="覆盖层"style="position:absolute;top:390px;left:0px;height:100px; width:250px;background:#FF9"></div></div><div style="position:absolute;background:#AFFFFC;width:1050px;height:80px; left:150px;top:1450px;"><div align="center"style="position:relative;top:15px;"><a href="about.html"class="a_style"><h2_login_6>关于微博</h2_login_6></a> |<a href="service.html"class="a_style"><h2_login_6>客服中心</h2_login_6></a> |<a href="backstage/login_backstage.php"class="a_style"><h2_login_6>后台登陆</h2_login_6></a></div><div align="center"style="position:relative;top:25px;"><h2_login_7>©2012-338blog Inc.All Rights Reserved for 338</h2_login_7></div></div><div style="DISPLAY:none"id=goTopBtn><IMG border=0 src="image/backtop.jpg"></div><script type=text/javascript>goTopEx();</script></body></html>3.课程设计心得、存在问题及解决方法通过本次课程设计,我学到了很多的东西,比如:css,javascript等,当然只是学了一点点罢了。
新浪微博的API
1,开发流程技术规范与指南目录隐藏∙ 1 概述∙ 2 开发流程o 2.1 申请APPKEYo 2.2 应用创建及发布流程∙ 3 开发指南o 3.1 SDK简介及作用o 3.2 如何通过授权访问数据3.2.1 OAUTH认证o 3.3 如何访问匿名接口o 3.4 接口数据如何适当的缓存o 3.5 如何避免rate limito 3.6 技术咨询和建议通过何种途径询问概述API平台应用日益丰富,为了让开发者更容易了解开发流程;为了规范API的接口,需要制定开发规范;为了对开发者进行一些深层次的指导,让开发者怎样来最优的访问API接口,特此制定开发流程技术规范与指南。
开发流程申请APPKEY1. 进入2. 如果您有新浪微博账户,可以直接登录,没有则注册一个微博账户后登录3. 登录后进入我的应用,创建一个应用4. 创建完成后会生成对应的appkey,app_secret,记住:您的app_key别对外泄露。
应用创建及发布流程应用的创建及发布包括下面的流程,开发者可以根据应用当前的状态进行相应的操作开发指南SDK简介及作用SDK是特定语言实现的一个可以通用的API使用的工具,SDK实现了新浪开放平台的全部或大部分接口,以便开发者不用关心API接口细节,认证实现等,可以直接调用接口完成特定的功能。
支持新浪微博开放平台接口的SDK语言包括Adobe air,c++,c#,java,php,python,ios等,具体请参考SDK列表页面如何通过授权访问数据微博开放平台对外支持两种用户认证方式,Basic auth以及OAUTH认证微博开放平台对外支持两种用户认证方式,Basic auth以及OAUTH认证OAUTH认证OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。
关于OAUTH协议可以参考使用OAUTH认证来获取微博数据介绍详细见:OAuth如何访问匿名接口为了方便一些应用在没有用户认证情况下需要获取一些数据,微博开放平台提供了一些匿名访问接口。
最简单的php代码示例
最简单的php代码示例PHP是一门开源且广泛使用的脚本语言,主要用于服务器端Web 开发。
在学习PHP的过程中,最简单的代码示例无疑是让初学者对该语言有一个基本的认识和初步的使用方法。
本文就要介绍关于最简单的PHP代码示例的相关内容。
1.准备工作在学习PHP之前,需要先安装PHP环境。
下载安装包后,打开“php.ini”配置文件并修改相关的选项,如“extension_dir”“error_reporting”等等。
安装完毕后,还需要在服务器中启用PHP模块,才能让PHP代码正常运行。
2.创建运行环境创建一个运行环境是开发任何应用程序的关键。
在PHP中,可以使用文本编辑器,例如Notepad++,来创建环境。
在这个环境中,创建一个文件夹,使用.php文件扩展名创建PHP脚本。
在Windows中,可以选择“新建文本文档”并将扩展名更改为“.php”。
3.开始编写代码在新创建的PHP文件中,输入以下的代码:<?phpecho "Hello World!";>这是PHP中最简单的代码示例,其功能是在Web页面上显示“Hello World!”的字样。
它由以下两行代码组成:第一行" <?php " 表示开始PHP代码块,这告诉服务器在此之后的所有代码都可以执行;第二行 " echo "Hello World!"; " 然后在Web浏览器中输出“Hello World!”这个字符串。
4.保存和运行代码在编写完PHP脚本后,需要将其保存到相应的文件夹中。
打开Web浏览器并输入“localhost/第二步中创建的文件夹名/脚本名称.php”来打开PHP页面。
在页面上,你将看到“Hello World!”这个字符串。
最后,需要强调的是,虽然这是最简单的代码示例,但它含有的基本知识点包括PHP语言的语法以及如何创建Web页面。
Python爬虫爬取新浪微博内容示例【基于代理IP】
Python爬⾍爬取新浪微博内容⽰例【基于代理IP】本⽂实例讲述了Python爬⾍爬取新浪微博内容。
分享给⼤家供⼤家参考,具体如下:⼀般做爬⾍爬取⽹站,⾸选的都是m站,其次是wap站,最后考虑PC站。
当然,这不是绝对的,有的时候PC站的信息最全,⽽你⼜恰好需要全部的信息,那么PC站是你的⾸选。
⼀般m站都以m开头后接域名,所以本⽂开搞的⽹址就是 。
前期准备1.代理IP2.抓包分析通过抓包获取微博内容地址,这⾥不再细说,不明⽩的⼩伙伴可以⾃⾏百度查找相关资料,下⾯直接上完整的代码完整代码:# -*- coding: utf-8 -*-import urllib.requestimport json#定义要爬取的微博⼤V的微博IDid='1259110474'#设置代理IPproxy_addr="122.241.72.191:808"#定义页⾯打开函数def use_proxy(url,proxy_addr):req=urllib.request.Request(url)req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0")proxy=urllib.request.ProxyHandler({'http':proxy_addr})opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandler)urllib.request.install_opener(opener)data=urllib.request.urlopen(req).read().decode('utf-8','ignore')return data#获取微博主页的containerid,爬取微博内容时需要此iddef get_containerid(url):data=use_proxy(url,proxy_addr)content=json.loads(data).get('data')for data in content.get('tabsInfo').get('tabs'):if(data.get('tab_type')=='weibo'):containerid=data.get('containerid')return containerid#获取微博⼤V账号的⽤户基本信息,如:微博昵称、微博地址、微博头像、关注⼈数、粉丝数、性别、等级等def get_userInfo(id):url='https:///api/container/getIndex?type=uid&value='+iddata=use_proxy(url,proxy_addr)content=json.loads(data).get('data')profile_image_url=content.get('userInfo').get('profile_image_url')description=content.get('userInfo').get('description')profile_url=content.get('userInfo').get('profile_url')verified=content.get('userInfo').get('verified')guanzhu=content.get('userInfo').get('follow_count')name=content.get('userInfo').get('screen_name')fensi=content.get('userInfo').get('followers_count')gender=content.get('userInfo').get('gender')urank=content.get('userInfo').get('urank')print("微博昵称:"+name+"\n"+"微博主页地址:"+profile_url+"\n"+"微博头像地址:"+profile_image_url+"\n"+"是否认证:"+str(verified)+"\n"+"微博说明:"+description+"\n"+"关注⼈数:"+str(guanzhu)+"\n"+"粉丝数:"+str(fensi)+"\n"+"性别:"+gender+"\n"+"微#获取微博内容信息,并保存到⽂本中,内容包括:每条微博的内容、微博详情页⾯地址、点赞数、评论数、转发数等def get_weibo(id,file):i=1while True:url='https:///api/container/getIndex?type=uid&value='+idweibo_url='https:///api/container/getIndex?type=uid&value='+id+'&containerid='+get_containerid(url)+'&page='+str(i)try:data=use_proxy(weibo_url,proxy_addr)content=json.loads(data).get('data')cards=content.get('cards')if(len(cards)>0):for j in range(len(cards)):print("-----正在爬取第"+str(i)+"页,第"+str(j)+"条微博------")card_type=cards[j].get('card_type')if(card_type==9):mblog=cards[j].get('mblog')attitudes_count=mblog.get('attitudes_count')comments_count=mblog.get('comments_count')created_at=mblog.get('created_at')reposts_count=mblog.get('reposts_count')scheme=cards[j].get('scheme')text=mblog.get('text')with open(file,'a',encoding='utf-8') as fh:fh.write("----第"+str(i)+"页,第"+str(j)+"条微博----"+"\n")fh.write("微博地址:"+str(scheme)+"\n"+"发布时间:"+str(created_at)+"\n"+"微博内容:"+text+"\n"+"点赞数:"+str(attitudes_count)+"\n"+"评论数:"+str(comments_count)+"\n"+"转发数:"+str(reposts_count)+"\n")i+=1else:breakexcept Exception as e:print(e)passif __name__=="__main__":file=id+".txt"get_userInfo(id)get_weibo(id,file)爬取结果更多关于Python相关内容可查看本站专题:《》、《》、《》、《》、《》、《》及《》希望本⽂所述对⼤家Python程序设计有所帮助。
基于PHP的微博系统的设计与实现
毕业论文基于PHP地微博系统地设计与实现毕业论文(设计)诚信声明本人声明:所呈交地毕业论文(设计)是在导师指导下进行地研究工作及取得地研究成果,论文中引用他人地文献、数据、图表、资料均已作明确标注,论文中地结论和成果为本人独立完成,真实可靠,不包含他人成果及已获得或其他教育机构地学位或证书使用过地材料.与我一同工作地同志对本研究所做地任何贡献均已在论文中作了明确地说明并表示了谢意.论文(设计)作者签名:日期:年月日毕业论文(设计)版权使用授权书本毕业论文(设计)作者同意学校保留并向国家有关部门或机构送交论文(设计)地复印件和电子版,允许论文(设计)被查阅和借阅.本人授权青岛农业大学可以将本毕业论文(设计)全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本毕业论文(设计).本人离校后发表或使用该毕业论文(设计)或与该论文(设计)直接相关地学术论文或成果时,单位署名为 .论文(设计)作者签名:日期:年月日指导教师签名:日期:年月日摘要微博,是微型博客地简称,是一个基于用户关系地信息分享、传播以及获取平台,用户以文字地形式更新信息,并实现即时共享.微博地公开性和即时性使其成为目前发展最为迅猛地互联网业务.PHP是一种运行于服务器端地HTML嵌入式脚本描述语言,相较于传统地动态解读语言,PHP拥有更好地稳定性和可操作性,运行效率更高;MySQL是一个最受欢迎地开源数据库管理系统,任何人都可以从Hitemet上下载和使用MySQL而不需要支付任何费用.本文中将介绍常见地建立PHP+MySQL运行环境地方法以及如何在PHP 中调用MySQL存储过程和函数完成微博系统地开发.本文所论述系统开发地核心内容就是以PHP语言和MySQL数据库为基础,结HTML、CSS、JavaScript等语言实现将微博用户地最新信息即时传递给微博地关注者,让微博用户可以即时地看到关注对象地最新信息(包括用户地个人信息,发布新鲜事,转发好友地新鲜事,评论,回复等信息)地功能.注册用户能通过好友管理找朋友(支持按条件筛选),对你喜欢地用户添加关注,发布带话题和图片地微博消息,评论你看到地用户发布地消息,回消息和查看私信等.复对你地评论,可以给你关注地微博用户发站内私信,查看个人首页,查看回复.关键字:微博;互联网;PHP ;MySQLAbstractMicro-Bo is the abbreviation of Microblogging . It's a platform based on customer relationship for information sharing,dissemination and ers can update the information in the form of text, and instant sharing. The openness and immediacy of the microblogging make it become the most rapid development of Internet business.PHP is a HTML embedded script description language running on the server .Compared with dynamic analysis language,PHP has a better stability and maneuverability. Its running is more efficient.MySQL is a most popular open source database management system. Anyone can download it from hitemet and there is no need to pay any money to use this popular open source database management system . This paper will introduce the common method of establishing PHP+MySQL operating environment and how to call MySQL stored procedures and the functions to complete the micro-blog system development in PHP.The core of the system development content discussed in this paper is based on PHP language and MySQL database.HTML、CSS and JavaScript realize the function of instantly transmitting micro-blog users' latest information to micro-blog followers .This function can let the micro-blog users see the concerned micro-blog users' latest information (Including personal information of the users,releasing fresh things,forwarding friends' fresh things, comments, reply and other information ).Registered users can find friends in Friends Management(support the function of selecting by conditions),add attention to users you like,release micro-blog news with topics and pictures, comment messages posted by users you see,reply the messages and view the private letters and others.,reply the comments on you,send private letters to micro-blog users you concerned,view personal pages,view reply and so on.Key words: Microblog。
ecshop2.7.3utf8版集成新浪微博联动登陆代码分享
Ecshop2.7.3UTF-8集成新浪微博登录精简插件分享本文提供Ecshop2.7.3UTF-8集成新浪微博登录插件的教程,只需修改config.php、callback.php两个文件,然后将config.php、callback.php、index.php、saetv2.ex.class.php四个文件放到根目录下的sinalogin文件夹,然后上传空间就行了,详见下文说明。
游仙谷商城开发进入收尾阶段了,朋友想在网站上启用新浪微博联动登陆,于是在网上搜索了下,参考了不少文档,下载了好几个插件放到网站里面发现都没什么好的效果,有些又太复杂了,修改N多个文件,于是觉定自己动手试试,没想到还成功了,呵呵,以下是详细实现方法:1.首先需要去/ 这里申请app2.然后下载最新/p/libweibo/downloads/list插件包2.1其中需要修改config.php文件define( "WB_AKEY" , '申请的到的key );define( "WB_SKEY" , '相对应的App Secret' );define( "WB_CALLBACK_URL" , 'http://域名/login/callback.php' );这里按申请到的参数填即可。
2.2 修改文件callback.php ,将此处代码复制全部替换掉下载回来的文件里的内容。
<?phpsession_start();define('IN_ECS', true);require('../includes/init.php');include_once('../includes/lib_transaction.php');include_once('../includes/lib_passport.php');include_once( 'config.php' );include_once( 'saetv2.ex.class.php' );$o = new SaeTOAuthV2( WB_AKEY , WB_SKEY );if (isset($_REQUEST['code'])) {$keys = array();$keys['code'] = $_REQUEST['code'];$keys['redirect_uri'] = WB_CALLBACK_URL;try {$token = $o->getAccessToken( 'code', $keys ) ;} catch (OAuthException $e) {}}if ($token) {$_SESSION['token'] = $token;setcookie( 'weibojs_'.$o->client_id, http_build_query($token) );$c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] ); $ms = $c->home_timeline(); // done$uid_get = $c->get_uid();$uid = $uid_get['uid'];$user_message = $c->show_user_by_id( $uid);//根据ID获取用户等基本信息function check_user($username){$sql = "SELECT user_id, password, salt " ." FROM " . $GLOBALS['ecs']->table("users")." WHERE user_name='$username'";$row = $GLOBALS['db']->getRow($sql);if (!empty($row)){return true;}else{return false;}}if($user_message['screen_name']!==""){ //获取微薄昵称$username=$user_message['screen_name'];$password=time();//随便弄个密码$email='kangkang2029@';//随便默认个邮箱,用户登陆后需要自己去修改掉$back_act ="/user.php";if (check_user($username)!==false){$GLOBALS['user']->set_session($username);$GLOBALS['user']->set_cookie($username);header("Location: /user.php\n"); //验证成功,跳转页面exit;}else{$reg_date = time();$password =md5($password);$ip=real_ip();$GLOBALS['db']->query('INSERT INTO ' . $GLOBALS['ecs']->table("users") . "(`email`, `user_name`, `password`, `reg_time`, `last_login`, `last_ip`) V ALUES ('$email', '$username', '$password', '$reg_date', '$reg_date', '$ip')");$GLOBALS['user']->set_session($username);$GLOBALS['user']->set_cookie($username);header("Location: /user.php\n");exit;}}else{echo 'fail';exit;}?><?php} else {?>授权失败。
51CTO学院-PHP第四季视频课程(ThinkPHP+jQuery+UI+微博系统)【李炎恢】
51cto学院-PHP第四季视频课程(ThinkPHP+jQuery+UI+微博系统)课程目标1.学习PHP的入门级框架ThinkPHP;2.使用前端jQuery以及UI来设计界面;3.整合前后端来实现一个微博系统的核心功能。
适用人群对PHP框架ThinkPHP感兴趣,对整合前后端技术完成一个微博系统感兴趣的同学。
课程简介本套课程,主要学习ThinkPHP3.2的基础知识,并且使用框架以及前端技术jQuery,UI等整合开发一套微博系统。
课程第一章PHP版本升级3课时1小时13分钟1从PHP5.2.x 到PHP5.3.x[上][免费观看]30分钟2从PHP5.2.x 到PHP5.3.x[下]23分钟3从PHP5.3.x 到PHP5.4.x19分钟第二章ThinkPHP框架36课时13小时9分钟4为什么要学习框架[1]20分钟5安装与配置[2]22分钟6模块化和URL模式[3]22分钟7模型初步[上][4]26分钟8模型初步[下][5]20分钟9SQL查询语句[上][6] 22分钟10SQL查询语句[下][7] 17分钟11SQL连贯操作[上][8] 19分钟12SQL连贯操作[下][9] 19分钟13CURD操作[上][10] 26分钟14CURD操作[下][11] 32分钟15自动验证[上][12]21分钟16自动验证[下][13] 21分钟17自动完成[14]15分钟18视图[15]20分钟19模版基础[上][16] 21分钟20模版基础[下][17] 22分钟21内置标签[上][18] 22分钟22内置标签[下][19] 28分钟23标签库[20]20分钟24路由功能[21]18分钟25URL操作[22] 22分钟26控制器[上][23] 17分钟27控制器[中][24] 23分钟28控制器[下][25]17分钟29Session与Cookie[26] 23分钟30图像处理[27]18分钟31验证码[28]19分钟32文件上传[29]22分钟33多语言[30]14分钟34auth权限控制[31]28分钟35关联模型[上][32]23分钟36关联模型[下][33]24分钟37视图模型和分页[34]22分钟38缓存处理[35]24分钟39调试模式[36]20分钟第三章MySQL进阶14课时4小时28分钟40Navicat使用[1]18分钟41列类型之数值[2]30分钟42列类型之日期[3]25分钟43列类型之字符[上][4] 16分钟44列类型之字符[下][5] 34分钟45列类型之属性[6]19分钟46索引的使用[7]23分钟47外键及数据完整性[8] 16分钟48存储引擎[9]13分钟49高级查询[10]14分钟50组合查询[11]10分钟51子查询[12]15分钟52联接查询[13]14分钟53视图操作[14]13分钟第四章微博系统82课时28小时36分钟54需求分析[1]16分钟55SVN版本控制[上][2]21分钟56SVN版本控制[下][3]17分钟57前后台配置[4]26分钟58登录页设计[上][5]20分钟59登录页设计[下][6]26分钟60用户表分析及创建[7] 14分钟61Ajax注册及自动完成[8] 23分钟62服务端自动验证[9]19分钟63客户端验证[10]21分钟64Ajax验证数据[11]20分钟65完善及邮箱补全[12] 24分钟66弹出验证码[上][13] 19分钟67弹出验证码[下][14] 24分钟68登录验证[上][15] 26分钟69登录验证[下][16] 20分钟70登录验证码[17]9分钟71自动登录[上][18]20分钟72自动登录[下][19]24分钟73绑定IP验证登录[20] 17分钟74微博主页设计[上][21] 24分钟75微博主页设计[下][22] 16分钟76退出及跳转页[23]15分钟77微博发布区设计[24]28分钟78引入表情插件[25]22分钟79微博发布及表分析[26]25分钟80引入uploadify上传插件[27] 20分钟81微博配图上传[上][28]21分钟82微博配图上传[中][29]17分钟83微博配图上传[下][30]23分钟84配图表分析及JSON处理[31] 17分钟85配图入库及绑定微博[32]21分钟86显示微博区设计[33]27分钟87一对多关联查询[34]20分钟88显示微博配图[35]19分钟89单图及发布时间方案[36]18分钟90多图放大显示方案[37]28分钟91无刷新及动态绑定[上][38] 17分钟92无刷新及动态绑定[下][39] 18分钟93拖动滚动条加载更多[40]24分钟94解决BUG和Top插件[41] 13分钟95一对一关联修改资料[上][42] 20分钟96一对一关联修改资料[下][43] 19分钟97引入图像裁剪插件[上][44] 16分钟98引入图像裁剪插件[中][45] 27分钟99引入图像裁剪插件[下][46] 19分钟100保存和显示头像[上][47]17分钟101保存和显示头像[下][48]18分钟102用户主页[49]26分钟103路由实现个性域名[50] 19分钟104@帐号附加主页链接[51] 24分钟105转播微博[上][52]23分钟106转播微博[中][53]23分钟107转播微博[下][54]20分钟108评论和Ajax分页[上][55] 21分钟109评论和Ajax分页[中][56] 17分钟110评论和Ajax分页[下][57] 18分钟111@提及到我[上][58]26分钟112@提及到我[下][59]20分钟113Ajax轮询推送[上][60] 15分钟114Ajax轮询推送[中][61] 17分钟115Ajax轮询推送[下][62] 20分钟116后台登录[下][64]23分钟117后台登录[上][63]18分钟118后台搭建[65]12分钟119菜单导航[66]16分钟120管理页切换[67]21分钟121会员管理[1][68]20分钟122会员管理[2][69] 15分钟123会员管理[3][70] 23分钟124会员管理[4][71] 17分钟125会员管理[5][72] 24分钟126会员管理[6][73] 29分钟127会员管理[7][74] 18分钟128会员管理[8][75]20分钟129会员管理[9][76]22分钟130申请认证[上][78] 20分钟131微博和评论列表[77] 16分钟132申请认证[下][79] 16分钟133权限控制[上][80] 27分钟134权限控制[中][81]21分钟135权限控制[下][82]35分钟课程地址:/course/course_id-3657.html。
新浪微博应用开发的一个解决方案
新浪微博应用开发的一个简易方案PHP+新浪微博开放平台+新浪云平台(SAE)贺利坚2012.2.25目 录一、必须交待的几个问题 (1)二、PHP+新浪微博开放平台+新浪云平台(SAE)方案的基础 (2)三、建立微博应用的过程 (4)四、PHP SDK中Demo程序简析 (18)五、进一步学习的走向和有用的资源 (27)附录1:新浪微博旧版API中的PHP例程 (29)附录2:新浪微博开放平台WeiboClient类的公共方法 (59)一、必须交待的几个问题这是一个不严肃的册子,主要因为:(1)作者不精通PHP,对PHP涉及的内容早有了解,但没有专门学习,之前更没有做过程序。
在决定试着体验用PHP开发微博应用后,也仅用半个上午的时间,浏览了PHP的一般语法;(2)这本册子是匆忙完成的,学习时间一天半,写作时间一天。
主要是因为并不打算在此方面深入做下去,也没有那么多的时间;(3)册子中除了作者自写的文字,其他材料全部来自新浪微博开放平台(/)和新浪云平台(/),有拼凑之嫌。
但是,这是一本很实用的册子,起码作者这样认为。
以作者飞速的学习进度,有力地说明这是快速了解微博应用开发的最好材料,给出的解决方案也是最适合初学者构建微博应用开发的。
一旦能够在浏览器中看到自己的代码操纵着微博中的信息,微博应用开发中不少概念将生动起来,再进一步做一些工作将不再那样艰苦。
尽管不严肃,还是决定写出来。
针对零基础的开发者,现在还没有一个适合的资料。
我的贡献在于为刚起步开发的读者整理出了个头绪,提出了一种最简便的学习方案。
从初学者的角度,凭着自己尚热乎的初学者感觉,帮其他初学者一把。
因为不精通,很多相应平台上能说清楚的事情,直接给出链接,而不再多言。
平台上的文字有些太多,初学者没看几个字,就被绕糊涂了。
我的贡献是指出看这些庞杂文档的一个建议,并尽量引导读者动手做,早些找到感觉。
所以,这本小册子仅是在微博应用开发上帮助读者起步的。
PHP简单注册源代码
php简单用户注册程序第一步:首先做一个如下页面。
<html><head><title>申请帐号</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css"><!--.p11 { font-size: 10pt; color: #000000; text-decoration: none} .c3a {font-size: 9pt; color: #000000; background-color: #ffffff; border: 1 solid #ff9900}--></style></head><body bgcolor="#FFFFFF" topmargin="0"><table width="440" border="0" cellspacing="0" cellpadding="0" align="center"><form method="post" action="zc.php"><tr><td width="230"><img src="/images/login.gif" width="200" height="30"></td> <td width="210" class="p11" valign="bottom"><font color="#FF6699">*</font>为必填项</td></tr></table><table width="440" border="1" cellspacing="0" cellpadding="0" align="center" bgcolor="#eeeeee" b ordercolordark="#eeeeee" bordercolorlight="#ffcf60"><tr><td colspan="2"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="56%"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center" height="170"><tr><td width="111" class="p11"><div align="right">用户名:</div></td><td width="207" class="p11"><input type="text" name="name" size="20" class="c3a"><span class="p11"><font color="#FF6699">*</font></span> </td></tr><tr><td width="111" class="p11"><div align="right">密码:</div></td><td width="207" class="p11"><input type="password" name="word" size="20" class="c3a"><span class="p11"><font color="#FF6699">*</font></span> </td></tr><tr><td width="111" class="p11"><div align="right">确认密码:</div></td><td width="207" class="p11"><input type="password" name="pass" size="20" class="c3a"><span class="p11"><font color="#FF6699">*</font> </span></td></tr><tr><td width="111" height="29" class="p11"><div align="right">提示问题:</div></td><td width="207" height="29" class="p11"><input type="text" name="ask" size="20" class="c3a"></td></tr><tr><td width="111" height="28" class="p11"><div align="right">答案提示:</div></td><td width="207" height="28" class="p11"><input type="text" name="answer" size="20" class="c3a"></td></tr><tr><td colspan="2"><div align="center"><input type="submit" name="Submit" value="下一步" style="font-size: 10pt;color: #EFF B00; background-color: rgb(225,153,0)"><input type="reset" name="Submit2" value="重来" style="font-size: 10pt;color: #EFFB0 0; background-color: rgb(225,153,0)"></div></td></tr></table></td><td width="44%"><div align="center"><img src="/images/login1.gif" width="120" height="90"></div></td></tr></table></td></tr></form></table></body></html>第二步:注册执行程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:基于php的简易微博系统
简易微博系统说明文档
一、本系统使用的工具
前台界面设计采用Dreamweaver工具,编写php运用zendstudio,服务器采用Apache,数据库支持采用MySQL。
二、系统需求说明
1、用户注册、登录;
2、成功登陆,可以发布微博、评论微博、转发微博;
3、用户可以浏览所以用户的微博;
4、用户可以对喜欢的人进行关注。
三、数据要求说明
本系统使用MySQL数据库,经过分析微博系统,总共设计了6张表。
主要有用户表、微博表、回复表、关注关系表、图片表、私信表。
重要数据表的数据字典如下:
用户表tb_user
名称类型说明
id int 用户id
username varchar 用户名
password varchar 密码
sex varchar 性别
realname varchar 真实姓名
photo varchar 图片
address varchar 地址
回复表tb_answer
名称类型说明
id int 回复id fromUser_id int 回复者id toUser_id int 给回复者id blog_id int 回复的微博id content varchar 回复内容resTime datetime 回复时间
微播表tb_blog
名称类型说明
id int 微博id
user_id int 用户id content varchar 微博内容fromBlog_id int 转发自微博id fromUser_id int 转发自用户id fowardNum int 转发数量issueTime datetime 发布时间
关注关系表tb_res
名称类型说明
id int 关注关系id
focusing_id int 关注id
focused_id int 粉丝id
四、概要设计说明
1、简易微博系统功能结构图如下所示:初期设计页面,主要有登录页面、注册页面、登录成功之后的主页面。
页面设计简洁,易于用户操作。
简易微博系统
登录
注册
发布微博
查
看
微
博
添
加
关
注
转
发
微
博
评
论
微
博
查
看
关
注
查
看
粉
丝
2、根据系统功能,设计数据库。
数据库设计是核心部分,需要
对微博系统有很好的理解。
3、理解微博系统的业务逻辑之后,运用php结合数据库进行编码。
五、用户操作说明
1.用户在地址栏输入http://localhost/wei/index.php 进入首页面。
如下所示:
2.没有注册的用户点击“立即注册”进入注册页面,进行注册。
3.注册成功的用户输入用户名和密码进行登录,若用户名或密码错误则出现以下提示:
4.登录成功的用户进入主页面homePage.php 进行各种操作。
六、总结:
通过制作这个简单的微博系统,是我对php有了更深一层的认识。
在此期间,也提高了一些技能,但同时也存在问题。
主要是:对于php的用法还不熟练,不能够很好的利用面向对象的思想来进行实现。
导致了很多冗余的代码,代码重用效率下降。
对数据库的操作不熟练,在编写过程中出现了很多错误。
系统有待改进的地方是,私信没有完成,没有加载微博图片。
这些工作我会通过查找资料来努力完成。