<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>52微笑Blog &#187; 学习笔记</title>
	<atom:link href="https://www.52smile.cn/?cat=6&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>https://www.52smile.cn</link>
	<description>记录生活点滴，分享精彩缤纷！</description>
	<lastBuildDate>Mon, 15 Jun 2015 13:33:12 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.1</generator>
	<item>
		<title>微信开发手记之·网页授权</title>
		<link>https://www.52smile.cn/?p=1555</link>
		<comments>https://www.52smile.cn/?p=1555#comments</comments>
		<pubDate>Fri, 05 Dec 2014 07:10:17 +0000</pubDate>
		<dc:creator><![CDATA[子涛]]></dc:creator>
				<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[微信]]></category>
		<category><![CDATA[微信授权]]></category>

		<guid isPermaLink="false">http://www.52smile.cn/?p=1555</guid>
		<description><![CDATA[<a href="https://www.52smile.cn/?p=1555"><img width="700" height="214" src="http://www.52smile.cn/wp-content/uploads/2014/12/wechat-development20141205.jpg" class="attachment-post-thumbnail wp-post-image" alt="wechat-development20141205" itemprop="image" lazyload="1" /></a>因为微信公众号的兴起和极强的扩散能力，公司的大部分客户也已经慢慢把这方面的业务作为了合作的必要需求，作为公司在移动端的推广和信息推送的重要手段微信的开发显得尤为重要，便捷性、时效性、好的用户体验可以让用户尽可能的记住你从而对公众号或公司做到较大程度的宣传和推广。依托于腾讯的强大平台和数亿万级的用户群体把微信称作移动端所]]></description>
				<content:encoded><![CDATA[<a href="https://www.52smile.cn/?p=1555"><img width="700" height="214" src="http://www.52smile.cn/wp-content/uploads/2014/12/wechat-development20141205.jpg" class="attachment-post-thumbnail wp-post-image" alt="wechat-development20141205" itemprop="image" lazyload="1" /></a><p>因为微信公众号的兴起和极强的扩散能力，公司的大部分客户也已经慢慢把这方面的业务作为了合作的必要需求，作为公司在移动端的推广和信息推送的重要手段微信的开发显得尤为重要，便捷性、时效性、好的用户体验可以让用户尽可能的记住你从而对公众号或公司做到较大程度的宣传和推广。依托于腾讯的强大平台和数亿万级的用户群体把微信称作移动端所有网页的入口一点也不为过。</p>
<p>这篇文章的初衷是把自己写过的代码收集起来方便下次使用，桌面的文件实在太多了导致每次达到满屏的时候就需要新建一次文件夹然后把所有文件一拷贝就随手扔进其他盘里了，这样做最大的问题就是等下次需要的时候各种找然后各种找不到，不知道大家有木有这么干过，说到这里就不得不上一张截图晒晒桌面了，求勿喷！</p>
<p><img class="aligncenter size-large wp-image-1556" src="http://www.52smile.cn/wp-content/uploads/2014/12/desktop20141205142427-600x375.jpg" alt="desktop20141205142427" width="600" height="375" /></p>
<p>有点话多了，不好意思，为了凑篇幅我真是无节操到家了！</p>
<p>如题，这篇文章主要说微信公众账号的网页授权问题，目前网页授权只允许已认证的服务号才有权限，网页授权一般用于公众号获取用户基本信息或实现一键登录，类似于新浪微博、QQ登录等。实现微信的授权登录可以在很大程度上解决用户登录繁琐和安全性问题对用户体验尤为重要，其中最好的例子可参考招行信用卡、微社区等。</p>
<p>微信OAuth2.0授权登录让微信用户使用微信身份安全登录第三方应用或网站，在微信用户授权登录已接入微信OAuth2.0的第三方应用后，第三方可以获取到用户的接口调用凭证（access_token），通过access_token可以进行微信开放平台授权关系接口调用，从而可实现获取微信用户基本开放信息和帮助用户实现基础开放功能等。</p>
<p>注：获取用户信息的方式有两种，一种是在用户和公众号进行交互时获取，另一种就是网页授权的方式，本文只讲解网页授权的方式。</p>
<p><strong><span style="color: #ff6600;">公众后台设置</span><em>：在微信公众号请求用户网页授权之前，开发者需要先到公众平台网站的我的服务页中配置授权回调域名。请注意，这里填写的域名不要加http://</em></strong></p>
<p>关于配置授权回调域名的说明：</p>
<pre>授权回调域名配置规范为全域名，比如需要网页授权的域名为：www.qq.com，配置以后此域名下面的页面<a class="external free" href="http://www.qq.com/music.html" target="_blank" rel="nofollow">http://www.qq.com/music.html</a> 、 <a class="external free" href="http://www.qq.com/login.html" target="_blank" rel="nofollow">http://www.qq.com/login.html</a> 都可以进行OAuth2.0鉴权。但<a class="external free" href="http://pay.qq.com/" target="_blank" rel="nofollow">http://pay.qq.com</a> 、 <a class="external free" href="http://music.qq.com/" target="_blank" rel="nofollow">http://music.qq.com</a> 、 <a class="external free" href="http://qq.com/" target="_blank" rel="nofollow">http://qq.com</a>  无法进行OAuth2.0鉴权</pre>
<p><strong>网页授权基本流程：</strong></p>
<p>具体而言，网页授权流程分为四步：</p>
<ol>
<li>引导用户进入授权页面同意授权，获取code</li>
<li>通过code换取网页授权access_token（与基础支持中的access_token不同）</li>
<li>如果需要，开发者可以刷新网页授权access_token，避免过期</li>
<li>通过网页授权access_token和openid获取用户基本信息</li>
</ol>
<p>在公众平台设置好回调域名之后，即可进行以下开发：</p>
<p>略去文档说明部分【点击了解】：http://mp.weixin.qq.com/wiki/index.php?title=%E7%BD%91%E9%A1%B5%E6%8E%88%E6%9D%83%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF</p>
<p><strong>授权入口：http://xxx.qq.com/access.php (此处access.php为授权页入口，文件名自定义)</strong></p>
<p><strong>授权页【授权弹框页面】：http://xxx.qq.com/oauth.php (用户访问入口页面进行鉴权，用户可选择“允许”或“取消”)</strong></p>
<p><strong>代码：</strong><br />
access.php</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type:text/html;charset=utf-8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;APPID&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;*************&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//appid,在公众后台开发模式查看</span><br />
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;REDIRECT_URI&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;http://xx.qq.com/oauth.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//授权页</span><br />
<span style="color: #666666; font-style: italic;">//授权首页，判断是否授权</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'loginstatus'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//判断access_token是否可用</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$access_token</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'loginstatus'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'access_token'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$refresh_token</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'loginstatus'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'refresh_token'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$openid</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'loginstatus'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'openid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//换取用户信息</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$userinfo_url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;https://api.weixin.qq.com/sns/userinfo?access_token=<span style="color: #006699; font-weight: bold;">$access_token</span>&amp;openid=<span style="color: #006699; font-weight: bold;">$openid</span>&amp;lang=zh_CN&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$userinfo_json</span> <span style="color: #339933;">=</span> https_request<span style="color: #009900;">&#40;</span><span style="color: #000088;">$userinfo_url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$userinfo_array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">json_decode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$userinfo_json</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array_key_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;errcode&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$userinfo_array</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$userinfo_array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'errcode'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'42001'</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$userinfo_array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'errcode'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'40001'</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">/*由于access_token拥有较短的有效期，当access_token超时后，可以使用refresh_token进行刷新，refresh_token拥有较长的有效期（7天、30天、60天、90天），当refresh_token失效的后，需要用户重新授权。，此步骤用于解决该问题！*/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//access_token超时，刷新access_token</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$access_token_url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=&quot;</span><span style="color: #339933;">.</span>APPID<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&amp;grant_type=refresh_token&amp;refresh_token=<span style="color: #006699; font-weight: bold;">$refresh_token</span>&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$access_token_json</span> <span style="color: #339933;">=</span> https_request<span style="color: #009900;">&#40;</span><span style="color: #000088;">$access_token_url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$access_token_array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">json_decode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$access_token_json</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array_key_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;errcode&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$access_token_array</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Location:https://open.weixin.qq.com/connect/oauth2/authorize?appid=&quot;</span><span style="color: #339933;">.</span>APPID<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&amp;redirect_uri=&quot;</span><span style="color: #339933;">.</span>REDIRECT_URI<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&amp;response_type=code&amp;scope=snsapi_userinfo&amp;state=STATE#wechat_redirect&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//更新SESSION</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'loginstatus'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'access_token'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$access_token_array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'access_token'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$access_token</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$access_token_array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'access_token'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$userinfo_url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;https://api.weixin.qq.com/sns/userinfo?access_token=<span style="color: #006699; font-weight: bold;">$access_token</span>&amp;openid=<span style="color: #006699; font-weight: bold;">$openid</span>&amp;lang=zh_CN&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$userinfo_json</span> <span style="color: #339933;">=</span> https_request<span style="color: #009900;">&#40;</span><span style="color: #000088;">$userinfo_url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$userinfo_array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">json_decode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$userinfo_json</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//打印用户基本信息</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">/*返回信息：openid,昵称(nickname)，性别(sex,1男，2女),省份(province),城市(city),国家(country),头像(headimgurl),用户特权信息(privilege)*/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$userinfo_array</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">else</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//未授权,进行授权【此步骤进入授权页】</span><br />
&nbsp; &nbsp; <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Location:https://open.weixin.qq.com/connect/oauth2/authorize?appid=&quot;</span><span style="color: #339933;">.</span>APPID<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&amp;redirect_uri=&quot;</span><span style="color: #339933;">.</span>REDIRECT_URI<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&amp;response_type=code&amp;scope=snsapi_userinfo&amp;state=STATE#wechat_redirect&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> https_request<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$curl</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span>CURLOPT_URL<span style="color: #339933;">,</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span>CURLOPT_SSL_VERIFYPEER<span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span>CURLOPT_SSL_VERIFYHOST<span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span>CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">curl_errno</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'ERROR '</span><span style="color: #339933;">.</span><span style="color: #990000;">curl_error</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #990000;">curl_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$data</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>oauth.php<br />
</code></p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type:text/html;charset=utf-8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//获得code</span><br />
<span style="color: #000088;">$code</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'code'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
login<span style="color: #009900;">&#40;</span><span style="color: #000088;">$code</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//进行授权</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> login<span style="color: #009900;">&#40;</span><span style="color: #000088;">$code</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$appid</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;*******************&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$appsecret</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;*****************************&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$access_token</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//根据code获取access_token</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$access_token_url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;https://api.weixin.qq.com/sns/oauth2/access_token?appid=<span style="color: #006699; font-weight: bold;">$appid</span>&amp;secret=<span style="color: #006699; font-weight: bold;">$appsecret</span>&amp;code=<span style="color: #006699; font-weight: bold;">$code</span>&amp;grant_type=authorization_code&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$access_token_json</span> <span style="color: #339933;">=</span> https_request<span style="color: #009900;">&#40;</span><span style="color: #000088;">$access_token_url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$access_token_array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">json_decode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$access_token_json</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array_key_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;errcode&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$access_token_array</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//取消授权</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$access_token_array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'errcode'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'40029'</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'取消授权!'</span><span style="color: #339933;">;</span> &nbsp;<span style="color: #666666; font-style: italic;">//点击取消按钮后操作，可自行定义</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;errorcode: &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$access_token_array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'errcode'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;errormsg: &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$access_token_array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'errmsg'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">else</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//获取access_token成功,将其保存到session</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'loginstatus'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'access_token'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$access_token_array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'access_token'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'loginstatus'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'refresh_token'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$access_token_array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'refresh_token'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'loginstatus'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'openid'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$access_token_array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'openid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Location:/access.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp;<span style="color: #666666; font-style: italic;">//返回入口页面，授权成功获取用户信息，不成功则再次进入该页面！</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> https_request<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$curl</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span>CURLOPT_URL<span style="color: #339933;">,</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span>CURLOPT_SSL_VERIFYPEER<span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span>CURLOPT_SSL_VERIFYHOST<span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span>CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">curl_errno</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'ERROR '</span><span style="color: #339933;">.</span><span style="color: #990000;">curl_error</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #990000;">curl_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$data</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>具体操作可根据需求自行编程，例如进行账号绑定或用户信息保存等操作，详细参数和返回错误代码可查看微信官方文档，<a href="http://mp.weixin.qq.com/wiki" title="官方文档wiki" target="_blank"></a>,如有不明白或上文中出现的错误请指正，谢谢？</p>
]]></content:encoded>
			<wfw:commentRss>https://www.52smile.cn/?feed=rss2&#038;p=1555</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>HTML5标准确定，小伙伴们再也不用担心浏览器兼容问题了！</title>
		<link>https://www.52smile.cn/?p=1516</link>
		<comments>https://www.52smile.cn/?p=1516#comments</comments>
		<pubDate>Sun, 02 Nov 2014 14:19:50 +0000</pubDate>
		<dc:creator><![CDATA[子涛]]></dc:creator>
				<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[html5标准]]></category>

		<guid isPermaLink="false">http://www.52smile.cn/?p=1516</guid>
		<description><![CDATA[<a href="https://www.52smile.cn/?p=1516"><img width="700" height="220" src="http://www.52smile.cn/wp-content/uploads/2014/11/html51-700x220.png" class="attachment-post-thumbnail wp-post-image" alt="html5" itemprop="image" lazyload="1" /></a>这是一个历史性的时刻，此话是不是有点熟悉，对！这确实是一个历史性的时刻，尤其是对广大的开发者们一定是值的欢呼的时刻，广大浏览器公司一直纠结在如何用什么样的标准来支持html5，从而导致不同浏览器对html5兼容和展示的不统一性。现在，标准的确定可以达到真正的统一性。 html5的易用和跨平台兼容性让更多的开发者在进行应]]></description>
				<content:encoded><![CDATA[<a href="https://www.52smile.cn/?p=1516"><img width="700" height="220" src="http://www.52smile.cn/wp-content/uploads/2014/11/html51-700x220.png" class="attachment-post-thumbnail wp-post-image" alt="html5" itemprop="image" lazyload="1" /></a><p>这是一个历史性的时刻，此话是不是有点熟悉，对！这确实是一个历史性的时刻，尤其是对广大的开发者们一定是值的欢呼的时刻，广大浏览器公司一直纠结在如何用什么样的标准来支持html5，从而导致不同浏览器对html5兼容和展示的不统一性。现在，标准的确定可以达到真正的统一性。</p>
<p>html5的易用和跨平台兼容性让更多的开发者在进行应用开发上有了新选择，相对于传统的app更加易于开发而且开发成本更低，我们已经在微信中看到了大量html5 web应用的身影，支持更多动画，更多使用属性，更多炫酷效果，相信绝大部分的开发者早已体会到，也出现了许多非常出色的产品。</p>
<p>也许html5的真正普及和所谓的替代传统应用需要很长的路要走，但html5的特性和优势也会让更多的人在开发应用时进行考量和选择，HTML5标准的完工，无疑给web app增加了制胜的砝码，这对于native app的从业者来说也许不是什么好消息，同时也会影响其周边行业，例如app分发，和app数据统计公司。</p>
<p>html5的最终制定完成并对外发布对html5来说有着里程碑的意义，耗时8年之久到，提前6年完工，足以说明w3c对html5的谨慎和重视程度，相信在html5被大量使用和优质应用出现的同时，更多和更令人惊艳的功能将被开发者所使用。</p>
<p>作为开发者来说，对html5的关注会越来越重视，标准的制定能否显现出立竿见影的效果也许是个未知数，但其带来的积极意义绝对是里程碑式的。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.52smile.cn/?feed=rss2&#038;p=1516</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Discuz 升级X3问题汇总整理</title>
		<link>https://www.52smile.cn/?p=1242</link>
		<comments>https://www.52smile.cn/?p=1242#comments</comments>
		<pubDate>Wed, 31 Jul 2013 02:39:07 +0000</pubDate>
		<dc:creator><![CDATA[子涛]]></dc:creator>
				<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[discuz]]></category>
		<category><![CDATA[x3问题]]></category>
		<category><![CDATA[升级问题]]></category>

		<guid isPermaLink="false">http://www.52smile.cn/?p=1242</guid>
		<description><![CDATA[<a href="https://www.52smile.cn/?p=1242"><img width="640" height="225" src="http://www.52smile.cn/wp-content/uploads/2013/07/discuz-x3wentizhenglifengmian.jpg" class="attachment-post-thumbnail wp-post-image" alt="discuz-x3wentizhenglifengmian" itemprop="image" lazyload="1" /></a>最近一段时间公司的社区垃圾帖数量陡然上涨，以至于社区首页的推荐版块满满都是垃圾帖的身影，为了进一步解决垃圾帖问题我们整整花了1天时间删垃圾贴，清除不良用户，删的手都酸了，可见垃圾帖的数量之多！可耻的刷帖机，可恶的发广告的人，因此我们决定增大discuz的验证机制，并进一步重新完善用户的权限，从注册、登录开始着手，志在清]]></description>
				<content:encoded><![CDATA[<a href="https://www.52smile.cn/?p=1242"><img width="640" height="225" src="http://www.52smile.cn/wp-content/uploads/2013/07/discuz-x3wentizhenglifengmian.jpg" class="attachment-post-thumbnail wp-post-image" alt="discuz-x3wentizhenglifengmian" itemprop="image" lazyload="1" /></a><p>最近一段时间公司的社区垃圾帖数量陡然上涨，以至于社区首页的推荐版块满满都是垃圾帖的身影，为了进一步解决垃圾帖问题我们整整花了1天时间删垃圾贴，清除不良用户，删的手都酸了，可见垃圾帖的数量之多！可耻的刷帖机，可恶的发广告的人，因此我们决定增大discuz的验证机制，并进一步重新完善用户的权限，从注册、登录开始着手，志在清除一切隐患，同时对discuz X2.5进行了升级！因为经常光顾官方论坛，所以对discuz x3.0的关注度还是比较高的，由于之前x3 beta版bug太多，所以一直没敢冒险升级，随着x3的逐步完善，再加上有重新调整社区的意思所以这次对社区进行了升级工作！</p>
<p>即便是已经比较完善的X3.0，但是还是有一些问题存在，所以发此贴来告之其他朋友！</p>
<p><strong>注意：【本内容以自动升级为准】升级的过程中需要关闭站点，自动升级需要下载数据，所以要开启网站的目录权限，data目录要777！</strong></p>
<p>1、在社区后台自动升级过程中提示 “/static/image/postbg/3.jpg”无法从服务器下载成功！</p>
<p>解决方法：找到文件 source/admincp/admincp_upgrade.php</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; &nbsp;<span style="color: #000088;">$offset</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">100</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">1024</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//替换为</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #000088;">$offset</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>2、升级完毕后发现搜索框变形！</p>
<p>图列：</p>
<p><img src="http://att.discuz.net/data/attachment/forum/201305/29/101029pqb0qq09m0mziqwl.png.thumb.jpg"/></p>
<p>解决办法： 进入后台  界面&#8211;>风格管理&#8212;>点击“更新CSS缓存” 之后清除浏览器缓存查看！</p>
<p>3、贴子内容页 QQ分享显示乱码！</p>
<p>图列</p>
<p><img src="http://att.discuz.net/data/attachment/forum/201306/15/194149dpv9pp39yhzhpbly.jpg.thumb.jpg"/></p>
<p>解决方法：</p>
<p>第一步：进入discuz后台 站长&#8211;>数据库&#8211;>升级</p>
<p>复制下面两行命令：</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">delete from `pre_common_plugin` where `identifier`<span style="color: #339933;">=</span> <span style="color: #0000ff;">'qqconnect'</span><span style="color: #339933;">;</span><br />
delete from `pre_common_setting` where `skey` <span style="color: #339933;">=</span> <span style="color: #0000ff;">'connect'</span></div></td></tr></tbody></table></div>
<p>按下面方式复制到文本框执行：</p>
<p><img src="http://att.discuz.net/data/attachment/forum/201307/15/234842plvlq3sy3s0iy13v.jpg.thumb.jpg"/></p>
<p><strong>注:如果看不到文本框出现，请先修改配置文件，找到config/config_global.php中的$_config[admincp][runquery] 设置修改为 1</strong></p>
<p>第二步：discuz后台&#8211;>云平台&#8211;>诊断工具  查看最下面的2个错误，点击修复！</p>
<p><img src="http://att.discuz.net/data/attachment/forum/201307/15/234950tpn3hinezogzaeqn.jpg.thumb.jpg"/></p>
<p>修改完毕后查看，是否已经修改完毕！</p>
<p><strong>注：安全期间，第一步中如果修改了配置文件，在修复完毕之后建议修改回之前默认值！</strong></p>
<p><font color=red>整理持续更新中！</font></p>
<p>版权：此内容大部分来源于discuz官方社区，此文为个人整理版！</p>
]]></content:encoded>
			<wfw:commentRss>https://www.52smile.cn/?feed=rss2&#038;p=1242</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>网站乔迁新居</title>
		<link>https://www.52smile.cn/?p=1213</link>
		<comments>https://www.52smile.cn/?p=1213#comments</comments>
		<pubDate>Fri, 28 Jun 2013 09:02:28 +0000</pubDate>
		<dc:creator><![CDATA[子涛]]></dc:creator>
				<category><![CDATA[学习笔记]]></category>

		<guid isPermaLink="false">http://www.52smile.cn/?p=1213</guid>
		<description><![CDATA[<a href="https://www.52smile.cn/?p=1213"><img width="640" height="220" src="http://www.52smile.cn/wp-content/uploads/2013/06/T1DmlrFa0fXXb1upjX.jpg" class="attachment-post-thumbnail wp-post-image" alt="T1DmlrFa0fXXb1upjX" itemprop="image" lazyload="1" /></a>网站运行时间已接近一年之久，这也意味着离网站空间到期也已没几天了，这几天万网往邮箱发了好多条催促续费的邮件，用相当严重的口气在上面写到，2013年7月15日之后将停止服务！正好，这个月开始空间使用流量在10号就已经达到了M3空间允许的流量限额（30G/月），看了看这个月的百度统计和clicki.cn的统计情况，貌似流量]]></description>
				<content:encoded><![CDATA[<a href="https://www.52smile.cn/?p=1213"><img width="640" height="220" src="http://www.52smile.cn/wp-content/uploads/2013/06/T1DmlrFa0fXXb1upjX.jpg" class="attachment-post-thumbnail wp-post-image" alt="T1DmlrFa0fXXb1upjX" itemprop="image" lazyload="1" /></a><p>网站运行时间已接近一年之久，这也意味着离网站空间到期也已没几天了，这几天万网往邮箱发了好多条催促续费的邮件，用相当严重的口气在上面写到，2013年7月15日之后将停止服务！正好，这个月开始空间使用流量在10号就已经达到了M3空间允许的流量限额（30G/月），看了看这个月的百度统计和clicki.cn的统计情况，貌似流量少的可怜，对于这个月空间流量超额的问题我反复的检查了各个页面以及空间各文件是否被挂马和是否收到攻击的情况，结果毫无答案！到20号的时候空间的使用流量竟然已经超过了50G，这也就是说在超过每月限定的30G/月的基础上同时宽限的15G也已使用完毕，结果就是空间被关停，跟客服人员交流之后给我的答复是我需要在这个月自行购买流量，最少一次性购买50G,按万网的流量价格50G流量需要200元，对于普通的博客站长来说200元足够购买国外主机一年，<strong>注意</strong>：不限流量！</p>
<p><strong>更换网站空间：</strong></p>
<p>在百般思索之后，因为之前嫌麻烦准备在7月15号前续费，980一年就这样吧，虽然贵了点但是木有办法，况且万网在速度和稳定性上真的还是不错的，但是因为这个月流量超标太多的问题因此换主机成了不得不想的问题，毕竟阿里云那样高富帅价格的云服务器还是暂时不想了，本身就是个人博客也不求每个月流量有多高，只要能快速、正常访问就ok的！这里说一下，但是使用万网的M3主机真的是一个无奈之举，因为在万网买的域名，大家都知道.cn的域名是必须要备案才可以使用的，而且目前对.cn域名的审核还是相当的严格，所以如果要使用万网的代备案系统其唯一的条件就是必须购买万网的空间才可以代备案，让我突然想起了该死的IT捆绑法则！</p>
<p><strong>转投西部数码：</strong></p>
<p>对于上面的无奈之举，我觉得极大方面还是因为我当时嫌麻烦，所以不得不选用万网空间，相对于其他空间商在价格方面万网确实是有点性价比过低，无论在空间大小，流量限制方面我觉得都是相当大的鸡肋，这方面其他空间商的虚拟主机可能相对有优势，不过像万网这种大厂商来说价格高也是正常的情况！不得不说在网站稳定性，主机质量，客服这些方面万网做的还是非常不错的，毕竟是大厂商！</p>
<p>这次学聪明了一点，准备直接在淘宝上先看看情况，还记的当时和群里的几个哥们聊天时发现同样的M3主机他们花了300左右入手，而我却傻乎乎的花了官方价980，所以多看看、比比价还是有好处的。期间在西部数码买过几个域名，因为其亲民的低价让我突然对西部数码有了好感，所以这次选购虚拟主机也就主要把目光放在了西部数码，通过官方的参数对比和掌握的价格来看，直接入手木有问题，所以就当场成交了，因为牵扯到备案转交问题，之前跟客服也进行了详细的交流，现在就差提价核验单，其他都已经没问题了，网站的上传下载也相对比较顺利，几乎没有出现一点问题，因此网站乔迁新居工作圆满完成。</p>
<p><strong>问题：</strong></p>
<p>因为之前在万网的空间是独立ip,这次空间的ip是公用的，所以不知道对网站的收录问题不知道有木有影响，不过据我观察这几天网站在百度的收录量已经减少了1半多，一方面可能是网站长期没更新，另一方面对于网站更换主机肯定是有影响的，但是不知道会不会继续掉还需观察，所以网站除了更新和小改动之外，更换空间还是有一定程度影响的！</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.52smile.cn/?feed=rss2&#038;p=1213</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DEDECMS的一些收藏</title>
		<link>https://www.52smile.cn/?p=925</link>
		<comments>https://www.52smile.cn/?p=925#comments</comments>
		<pubDate>Fri, 01 Feb 2013 08:02:21 +0000</pubDate>
		<dc:creator><![CDATA[子涛]]></dc:creator>
				<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[dedecms]]></category>
		<category><![CDATA[dedecms登录]]></category>
		<category><![CDATA[dede自定义字段]]></category>

		<guid isPermaLink="false">http://www.52smile.cn/?p=925</guid>
		<description><![CDATA[<a href="https://www.52smile.cn/?p=925"><img width="640" height="155" src="http://www.52smile.cn/wp-content/uploads/2013/02/20130201dedecmsbiji.jpg" class="attachment-post-thumbnail wp-post-image" alt="20130201dedecmsbiji" itemprop="image" lazyload="1" /></a>最近弄了一个dede的项目，这几天博客都快荒废了。一直木有心思打理打理，这不马上要回家了所以最好码个一两篇的也好填充一下博客不然让来博客的人产生审美疲劳了，百度收录今天一看突然少了100多条，google的也少了好几十条，心里虽说有点慌但还是懒得写几个字。上篇转自大CC的文章也许有人看了也回去折腾了，不过真心说是一片好]]></description>
				<content:encoded><![CDATA[<a href="https://www.52smile.cn/?p=925"><img width="640" height="155" src="http://www.52smile.cn/wp-content/uploads/2013/02/20130201dedecmsbiji.jpg" class="attachment-post-thumbnail wp-post-image" alt="20130201dedecmsbiji" itemprop="image" lazyload="1" /></a><p>最近弄了一个dede的项目，这几天博客都快荒废了。一直木有心思打理打理，这不马上要回家了所以最好码个一两篇的也好填充一下博客不然让来博客的人产生审美疲劳了，百度收录今天一看突然少了100多条，google的也少了好几十条，心里虽说有点慌但还是懒得写几个字。上篇转自大CC的文章也许有人看了也回去折腾了，不过真心说是一片好文章。</p>
<p>这篇文章纯属个人收藏的一些dedecms笔记，如果对此类文章无任何兴趣我想应该提前移步。个人感觉你可以去听听我分享的音乐、视频或者随意吐槽一下我写的其他文章，至于灌水我郑重申明：我……无所谓，您随意！</p>
<p><strong>dede调用自定义字段</strong>：</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">{dede:arclist addfields=’add1,add2,需要查询出来的自定义字段名’ channelid=’自定义内容模型的ID’ row=’10′ orderby=’pubdate”}（add1,add2为自字义的字段名）<br />
字段名1 调用： &nbsp; [field:add1 /]<br />
字段名2 调用： &nbsp; [field:add2 /]<br />
{/dede:arclist}<br />
或者<br />
<br />
{dede:arclist addfields=’add1,add2,’ row=’10′ orderby=’pubdate”}（add1,add2为自字义的字段名）<br />
字段名1 调用： &nbsp; [field:add1 /]<br />
字段名2 调用： &nbsp; [field:add2 /]<br />
{/dede:arclist}<br />
<br />
或者<br />
{dede:sql sql=”SELECT exhibition_name,exhibition_time,exhibition_address FROM #@__addonExhibition”} [field:exhibition_name/] {/dede:sql}<br />
<br />
或者<br />
<br />
{dede:sql sql=”SELECT exhibition_name,exhibition_time,exhibition_address FROM dede_addonExhibition”} [field:exhibition_name/]<br />
{/dede:sql}<br />
<br />
或者<br />
<br />
基本语法：<br />
{dede:arclist typeid=” row=” col=” titlelen=” infolen=” imgwidth=” imgheight=” listtype=” orderby=” keyword=” adddata=” }<br />
<br />
自定义样式模板(InnerText)<br />
<br />
{/dede:arclist}<br />
<br />
属性参考：<br />
<br />
adddata=’表名,需要调用的列名1,需要调用的列名2,……’ 注意：这里的第一个值必须要填数据库的表名，表名不要包含dede_<br />
变量调用方法：[field:列名1 /] [field:列名2 /] ……<br />
<br />
如：<br />
{dede:arclist infolen=’100′ adddata=’表名,需要调用的列名1,需要调用的列名2,……’}<br />
[field:textlink /]<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
[field:info /]<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
[field:需要调用的列名1 /]<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
[field:需要调用的列名2 /]<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
{/dede:arclist}</div></td></tr></tbody></table></div>
<p><strong>静态页实现登录</strong></p>
<p>dedecms静态登录需要通过ajax来实现，这里贴一下代码！</p>
<p>/member/下新建页面 ajax_loginstatus.php 内容：</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//由于判断模板页面顶部登录状态</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'action'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'checklogin'</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">require</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/config.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$uid</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$cfg_ml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">M_LoginID</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$uid</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'0'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">' &lt;div&gt;&lt;a class=&quot;login-button&quot; href=&quot;#&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$uid</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/a&gt;|&lt;a class=&quot;join-button&quot; href=&quot;http://www.xxx.com.cn/cms/member/index_do.php?fmdo=login&amp;dopost=exit&quot;&gt;登出&lt;/a&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>html,发送和接受php段返回值，基本代码：</p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; $.<span style="color: #660066;">ajax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; url<span style="color: #339933;">:</span><span style="color: #3366CC;">'http://www.xxx.com.cn/cms/member/ajax_loginstatus.php?action=checklogin'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; type<span style="color: #339933;">:</span><span style="color: #3366CC;">'GET'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; cache<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; success<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>msg<span style="color: #339933;">!=</span><span style="color: #3366CC;">'0'</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.header_msg'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>https://www.52smile.cn/?feed=rss2&#038;p=925</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>[转载]WEB站点性能优化实践（加载速度提升2s）</title>
		<link>https://www.52smile.cn/?p=920</link>
		<comments>https://www.52smile.cn/?p=920#comments</comments>
		<pubDate>Sat, 26 Jan 2013 11:12:58 +0000</pubDate>
		<dc:creator><![CDATA[子涛]]></dc:creator>
				<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[网站性能优化]]></category>

		<guid isPermaLink="false">http://www.52smile.cn/?p=920</guid>
		<description><![CDATA[<a href="https://www.52smile.cn/?p=920"><img width="640" height="155" src="http://www.52smile.cn/wp-content/uploads/2013/01/20130126youhuapian.jpg" class="attachment-post-thumbnail wp-post-image" alt="20130126youhuapian" itemprop="image" lazyload="1" /></a>今天偶然从卢松松的网站看到了这篇文章，后来发现出处是大CC然后果断去大CC站点详细的品读了这篇文章，并对站点做了一下优化，利用WP minify合并了站点的css和js，同时修改了DNS解析将DNS解析从万网移至DNSPOD,修改后测试效果明显，随即转载此文以便普及大众！ 大CC站点地址：http://blog.me1]]></description>
				<content:encoded><![CDATA[<a href="https://www.52smile.cn/?p=920"><img width="640" height="155" src="http://www.52smile.cn/wp-content/uploads/2013/01/20130126youhuapian.jpg" class="attachment-post-thumbnail wp-post-image" alt="20130126youhuapian" itemprop="image" lazyload="1" /></a><p>今天偶然从卢松松的网站看到了这篇文章，后来发现出处是大CC然后果断去大CC站点详细的品读了这篇文章，并对站点做了一下优化，利用WP minify合并了站点的css和js，同时修改了DNS解析将DNS解析从万网移至DNSPOD,修改后测试效果明显，随即转载此文以便普及大众！</p>
<p>大CC站点地址：http://blog.me115.com</p>
<p>此文转载链接：http://blog.me115.com/2013/01/276</p>
<p><span style="font-family: 华文中宋; font-size: medium;">进行优化前，关键是剖析当前的web性能，找到性能瓶颈，从而确定最需改进的地方；如果精力有限，首先将精力放在能明显提升性能的改进点上；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">《<a href="http://www.me115.com/book/102.html" target="_blank">高性能网站建设指南</a>》提出了一个性能黄金法则：</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">只有10%-20%的最终用户响应时间花在了下载HTML文档上；其余的80%-90%的时间花在了下载页面中的所有组件上。</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">由于本文将实施一个完整的优化流程，所以，我们还是从后台开始；</span></p>
<p>&nbsp;</p>
<p><span style="color: #ff8000; font-family: 华文中宋; font-size: medium;"><strong>案例说明：</strong></span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">优化之前的网站规模：</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">2个js、一个页头、一个页脚；3个css；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">类型：博客类站点；后台逻辑简单；首页不到10个sql查询；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">首页html文档52kb;</span></p>
<p>&nbsp;</p>
<p><span style="color: #ff8000; font-family: 华文中宋; font-size: medium;"><strong>第一步：后台优化，启用页面缓存；</strong></span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">实验站点首页后台逻辑并不复杂，不超过10个Sql查询，通过查看时间线，本站在获取HTML文档时，花费的时间不到总响应时间的20%，优化之前没有使用缓存，所有的数据都是从数据库读取，这里，我们使用静态页面缓存，将首页整个页面完全的存放在缓存中（关于YII静态页面缓存的使用，<strong><a href="http://blog.me115.com/2013/01/246" target="_blank">参考这里</a></strong>）；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">通过查看html文档的生成时间来检测优化效果；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">首字节时间为376ms；html生成的时间大大缩短，后台时间减少了一倍。</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">优化前：</span></p>
<p><a href="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image20655.png"><span style="font-family: 华文中宋; font-size: medium;"><img title="wps_clip_image-20655" alt="wps_clip_image-20655" src="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image206552.png" width="640" height="120" border="0" /></span></a></p>
<p><span style="font-family: 华文中宋; font-size: medium;">优化后：</span></p>
<p><a href="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image4529.png"><span style="font-family: 华文中宋; font-size: medium;"><img title="wps_clip_image-4529" alt="wps_clip_image-4529" src="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image45292.png" width="640" height="72" border="0" /></span></a></p>
<p>&nbsp;</p>
<p><span style="color: #ff8000; font-family: 华文中宋; font-size: medium;"><strong>第二步，DNS域名解析加速：</strong></span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">DNS解析是用户访问站点的第一步，在此之前，你的网站无法做任何事情；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">站点的DNS解析时间不应该超过500ms，如果站点原始DNS解析时间过长，就该考虑考虑使用第三方解析加速服务；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">实验站点的原始DNS解析较慢，平均耗时1017ms，算是非常长的；对于DNS加速，可以使用DNS域名解析加速服务，本站点采用的国内的一款免费DNS加速服务DNSPOD，效果还不错，使用后平均耗时降到370ms；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">加速前测试：</span></p>
<p><a href="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image14761.png"><span style="font-family: 华文中宋; font-size: medium;"><img title="wps_clip_image-14761" alt="wps_clip_image-14761" src="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image147611.png" width="644" height="31" border="0" /></span></a></p>
<p><span style="font-family: 华文中宋; font-size: medium;">使用DNS域名解析服务</span><span style="font-family: 华文中宋; font-size: medium;">之后的测试：</span></p>
<p><a href="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image16186.png"><span style="font-family: 华文中宋; font-size: medium;"><img title="wps_clip_image-16186" alt="wps_clip_image-16186" src="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image161861.png" width="644" height="28" border="0" /></span></a></p>
<p>&nbsp;</p>
<p><span style="color: #ff8000; font-family: 华文中宋; font-size: medium;"><strong>第三步：使用CDN加速；</strong></span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">采用第三方CDN加速，时间缩短到2.1s；从下图中看到主要的耗时在于并行下载的个数有些低，如果能够提升并行下载量的个数，那么整体加载时间就会降低；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">注：个人建议，启用CDN最好放在最后一步，等将站点本身的优化都做完了之后，再启用CDN可以明显的看到优化效果。（开启CDN后，由于有CDN缓存的原因，观测站点的本身的优化就不是很方便了）；</span></p>
<p><a href="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image15052.png"><span style="font-family: 华文中宋; font-size: medium;"><img title="wps_clip_image-15052" alt="wps_clip_image-15052" src="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image150521.png" width="644" height="326" border="0" /></span></a></p>
<p>&nbsp;</p>
<p><span style="color: #ff8000; font-family: 华文中宋; font-size: medium;"><strong>第四步，采用多台服务器提高并行加载量：</strong></span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">原理：一个浏览器对与同一域名的并行下载的个数默认是2个， HTTP.1.0中规定的是4个。这样，我们可以使用不同的域名来提升下载的速度；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">观察上图中的下载数量，第一次并行下载的个数是4个，初始认为是浏览器对于同一个域名来源的下载所限导致；于是考虑将部分静态文件分别放在不同的服务器上；通过把css和js放在不同服务器上；结果并不理想，发现并未提高速度。</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">想到在哪曾看到过，浏览器必须得把放在页头的css和js下载完成了之后才会开始下载其它的静态组件；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">关于并行下载这点上，后续将继续实验是否还有优化的空间。</span></p>
<p><a href="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image21817.png"><span style="font-family: 华文中宋; font-size: medium;"><img title="wps_clip_image-21817" alt="wps_clip_image-21817" src="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image218171.png" width="644" height="375" border="0" /></span></a></p>
<p>&nbsp;</p>
<p><span style="color: #ff8000; font-family: 华文中宋; font-size: medium;"><strong>第五步，合并脚本和样式表；</strong></span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">    本站首页使用了2个js和3个css。如果采用朴素复制的方式，将js和css都分别整合到一个文件中，不但操作麻烦，而且不方便后期的管理。网络上有不少合并的工具，本站采用了CSS和JS合并优化工具-minify（下载地址：</span><a href="http://code.google.com/p/minify/"><span style="font-family: 华文中宋; font-size: medium;">http://code.google.com/p/minify/</span></a><span style="font-family: 华文中宋; font-size: medium;">）。如果使用的YII框架，更有YII整合版（</span><a href="https://bitbucket.org/TeamTPG/minscript/wiki/Home"><span style="font-family: 华文中宋; font-size: medium;">minscript Extension</span></a><span style="font-family: 华文中宋; font-size: medium;">），简单几步的配置，就自动将页面所有的js和css文件合并；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">关于</span><a href="https://bitbucket.org/TeamTPG/minscript/wiki/Home"><span style="font-family: 华文中宋; font-size: medium;">minscript Extension</span></a><span style="font-family: 华文中宋; font-size: medium;">的使用，请参考：</span><a href="https://bitbucket.org/TeamTPG/minscript/wiki/Usage"><span style="font-family: 华文中宋; font-size: medium;">https://bitbucket.org/TeamTPG/minscript/wiki/Usage</span></a></p>
<p>&nbsp;</p>
<p><span style="color: #ff8000; font-family: 华文中宋; font-size: medium;"><strong>第六步，压缩css/js/html/xml；</strong></span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">不同的web服务器设置方式有所差别，本站使用的Linux/apache,</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">在web根目录下的.htaccess文件中添加以下代码即可：</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">#set compress</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">&lt;ifmodule mod_deflate.c&gt;</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">AddOutputFilter DEFLATE html xml php js css</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">&lt;/ifmodule&gt;</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">通过firefox工具可看到，压缩前，html文档的大小是25KB；合并后的js大小为138KB；</span></p>
<p><a href="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image2227.png"><span style="font-family: 华文中宋; font-size: medium;"><img title="wps_clip_image-2227" alt="wps_clip_image-2227" src="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image22271.png" width="644" height="236" border="0" /></span></a></p>
<p><span style="font-family: 华文中宋; font-size: medium;">压缩后，html文档大小为6.2KB。js大小为39.8KB；减少2/3的传输时间；</span></p>
<p><a href="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image10096.png"><span style="font-family: 华文中宋; font-size: medium;"><img title="wps_clip_image-10096" alt="wps_clip_image-10096" src="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image100961.png" width="644" height="102" border="0" /></span></a></p>
<p>&nbsp;</p>
<p><span style="color: #ff8000; font-family: 华文中宋; font-size: medium;"><strong>第六步，最大化的减少HTTP请求；</strong></span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">添加Expires头, 启用静态内容缓存，将jpg、gif等文件缓存；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">方法也是在.htaccess中添加：</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;"># Image and Flash content Caching for One Month</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">&lt;FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf)$”&gt;</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">Header set Cache-Control “max-age=2592360″</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">&lt;/FilesMatch&gt;</span></p>
<p>&nbsp;</p>
<p><span style="color: #ff8000; font-family: 华文中宋; font-size: medium;"><strong>结论</strong></span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">查看最终的测试结果，整体实现了较大的性能提升，最终页面展现时间为1.62s（测试使用的是一个第三方web测速工具，所有测试结果是在第三方本地无缓存的条件下进行）。仔细观察本站最后几个加载项：有一个第三方网站的广告（加载广告的时刻，页面已经全部呈现，对用户体验影响不大），以及cnzz的统计数据。这样看来，在第12项加载完后，整个页面就完整的呈现在用户面前，优化最终结果是1.1s，较优化前加载速度提升2s；由于物理条件（虚拟机、国外站点）所限，本次优化就到此为止（后续将在并行下载上做做文章，看是否有进一步提升空间）。</span></p>
<p><a href="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image7016.png"><span style="font-family: 华文中宋; font-size: medium;"><img title="wps_clip_image-7016" alt="wps_clip_image-7016" src="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/wps_clip_image70161.png" width="644" height="219" border="0" /></span></a></p>
<p>&nbsp;</p>
<p><span style="font-family: 华文中宋; font-size: medium;">本次优化主要使用的是前端优化，其中大部分规则来自于这本书的指导《<a href="http://www.me115.com/book/102.html" target="_blank">高性能网站建设指南</a></span><span style="font-family: 华文中宋; font-size: medium;">》；如果你的web前端部分还没有充分优化，强烈建议读读这本书；</span></p>
<p><span style="font-family: 华文中宋; font-size: medium;">这是一本你只需画上三小时就能看完，但收获价值远远大于付出的一本书。</span></p>
<p><img title="image" alt="image" src="http://42.121.14.102/css/blog/wp-content/uploads/2013/01/image2.png" width="194" height="262" border="0" /></p>
]]></content:encoded>
			<wfw:commentRss>https://www.52smile.cn/?feed=rss2&#038;p=920</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>改改更健康之动手篇</title>
		<link>https://www.52smile.cn/?p=856</link>
		<comments>https://www.52smile.cn/?p=856#comments</comments>
		<pubDate>Thu, 20 Dec 2012 16:03:57 +0000</pubDate>
		<dc:creator><![CDATA[子涛]]></dc:creator>
				<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[评论]]></category>

		<guid isPermaLink="false">http://www.52smile.cn/?p=856</guid>
		<description><![CDATA[<a href="https://www.52smile.cn/?p=856"><img width="640" height="155" src="http://www.52smile.cn/wp-content/uploads/2012/12/20121220qifengmiantupian.jpg" class="attachment-post-thumbnail wp-post-image" alt="20121220qifengmiantupian" itemprop="image" lazyload="1" /></a>突然发现别人的博客越做越好反观自己却依旧问题很多，对于好多网友提出的问题虽一直挂在心上却一直没能付诸行动，昨天看了一个关于拖拉症的视频遂发现已病入膏肓！ 博客也升级了，不过对于我而言升不升级貌似没有多大变化，只要没出现类似于乱码、页面404、数据丢失等问题就完全ok，貌似这几次升级我都没有做好备份的习惯，不过好在一切安]]></description>
				<content:encoded><![CDATA[<a href="https://www.52smile.cn/?p=856"><img width="640" height="155" src="http://www.52smile.cn/wp-content/uploads/2012/12/20121220qifengmiantupian.jpg" class="attachment-post-thumbnail wp-post-image" alt="20121220qifengmiantupian" itemprop="image" lazyload="1" /></a><p>突然发现别人的博客越做越好反观自己却依旧问题很多，对于好多网友提出的问题虽一直挂在心上却一直没能付诸行动，昨天看了一个关于拖拉症的视频遂发现已病入膏肓！</p>
<p>博客也升级了，不过对于我而言升不升级貌似没有多大变化，只要没出现类似于乱码、页面404、数据丢失等问题就完全ok，貌似这几次升级我都没有做好备份的习惯，不过好在一切安然无恙也算是万事大吉了！</p>
<p>博客的评论框出问题已经很久了，大概两个月的时间评论框一直处于半瘫痪状态，提交速度慢的足以让你撒泡尿回来都不嫌晚，因此有好多网友都在反馈这个问题，反映的多了我也开始免疫了，拖拖拉拉就一直拖到写文章之前才修改好，因此真是很感谢那些近来不断发评论的网友，谢谢你们的坚持！因为博客有两个页面(小视频、每日音乐)是用留言板改过来的所以如果单纯的直接使用多说、denglu评论框会严重影响原有视频页面和音乐页面的样式，所以为了能达到两全其美的效果，在保留原用评论样式的基础上使用了denglu的自定义评论框功能，并将原有的评论列表取消了回复功能修改为 顶、踩（仿照煎蛋）。好，大功告成。不过denglu的问题还是存在的，因为denglu没有直接绑定wp管理员账号的功能，所以导致从灯鹭同步过来的数据有一些小问题（user_id默认为0的情况），因此不得不修改插件页面关于导入本地评论数据的方法，先测试一下效果，不过解决了用户评论慢的问题我已经很满足了，还请大家多来发表见解！</p>
<p>在此还是感谢支持52smile的朋友，希望你们能够多提建议，相信网站会越来越好！</p>
<p>为了增加篇幅，把自己新加的一个仿QQ到达顶部、底部的代码给贴出来：<br />
<strong>CSS</strong></p>
<div class="codecolorer-container css blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">/*锚点*/</span><br />
<span style="color: #808080; font-style: italic;">/*p{line-height:28px}*/</span><br />
<span style="color: #6666ff;">.go</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">47px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">106px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#FFF</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">fixed</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; _position<span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">:</span> <span style="color: #933;">25%</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; box-shadow<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">2px</span> <span style="color: #cc00cc;">#6E6E6E</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span> <br />
<span style="color: #00AA00;">&#125;</span><br />
&nbsp;<br />
<span style="color: #6666ff;">.go</span> a <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">MRimg/maodian.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">text-indent</span><span style="color: #00AA00;">:</span> <span style="color: #933;">999em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">999px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">37px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">left</span> <br />
<span style="color: #00AA00;">&#125;</span><br />
&nbsp;<br />
<span style="color: #6666ff;">.go</span> .<span style="color: #000000; font-weight: bold;">top</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">-33px</span><span style="color: #00AA00;">;</span><span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">22px</span> <span style="color: #00AA00;">&#125;</span><br />
&nbsp;<br />
<span style="color: #6666ff;">.go</span> <span style="color: #6666ff;">.feedback</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">-54px</span><span style="color: #00AA00;">;</span><span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">32px</span> <span style="color: #00AA00;">&#125;</span><br />
&nbsp;<br />
<span style="color: #6666ff;">.go</span> .<span style="color: #000000; font-weight: bold;">bottom</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">-88px</span><span style="color: #00AA00;">;</span><span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">22px</span> <span style="color: #00AA00;">&#125;</span><br />
&nbsp;<br />
<span style="color: #6666ff;">.go</span> .<span style="color: #000000; font-weight: bold;">top</span><span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-38px</span> <span style="color: #933;">-33px</span> <span style="color: #00AA00;">&#125;</span><br />
&nbsp;<br />
<span style="color: #6666ff;">.go</span> <span style="color: #6666ff;">.feedback</span><span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-38px</span> <span style="color: #933;">-54px</span> <span style="color: #00AA00;">&#125;</span><br />
&nbsp;<br />
<span style="color: #6666ff;">.go</span> .<span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-38px</span> <span style="color: #933;">-88px</span> <span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p><strong>HTML</strong></p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;go&quot;</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;返回顶部&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;top&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;javascript:void(0)&quot;</span>&gt;</span>至顶<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;如果您有意见，请请给我留言！&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;feedback&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.52smile.cn/guestbook&quot;</span> <span style="color: #000066;">target</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;_blank&quot;</span>&gt;</span>反馈<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;返回底部&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;bottom&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;javascript:void(0);&quot;</span>&gt;</span>至底<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></div></td></tr></tbody></table></div>
<p><strong>JS</strong></p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #006600; font-style: italic;">// 顶部滚动</span><br />
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; $<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'scroll'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">scrollTop</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.go'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeIn</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;slow&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">else</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.go'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeOut</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;slow&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//根据屏幕宽度显示div的位置</span><br />
&nbsp; jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.go'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'left'</span><span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span>jQuery<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">width</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">990</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">2</span><span style="color: #339933;">+</span><span style="color: #CC0000;">992</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; <span style="color: #006600; font-style: italic;">//移动到顶部、移动到底部</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//到顶部</span><br />
&nbsp; jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.top'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'html,body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>scrollTop<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;0px&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">800</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//到底部</span><br />
&nbsp; jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.bottom'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'html,body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>scrollTop<span style="color: #339933;">:</span>$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;px&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">800</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>浏览效果请到首页，滚动鼠标滚轮查看效果！</p>
]]></content:encoded>
			<wfw:commentRss>https://www.52smile.cn/?feed=rss2&#038;p=856</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>自己写的一段带省略号的asp分页代码</title>
		<link>https://www.52smile.cn/?p=619</link>
		<comments>https://www.52smile.cn/?p=619#comments</comments>
		<pubDate>Wed, 10 Oct 2012 08:33:32 +0000</pubDate>
		<dc:creator><![CDATA[子涛]]></dc:creator>
				<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[浅谈工作]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[分页]]></category>
		<category><![CDATA[省略]]></category>

		<guid isPermaLink="false">http://www.52smile.cn/?p=619</guid>
		<description><![CDATA[<a href="https://www.52smile.cn/?p=619"><img width="640" height="225" src="http://www.52smile.cn/wp-content/uploads/2012/10/fenyedefengmian.jpg" class="attachment-post-thumbnail wp-post-image" alt="fenyedefengmian" itemprop="image" lazyload="1" /></a>PS:作为一个php开发者来说，突然让写一段asp的分页代码真是有点摸不着头脑。思想有、逻辑有，就是不会asp。于是乎，看了1个多小时的书写出了这样一堆厚重的分页代码！不过好的一点是：一次成型、效果堪称完美！ 因为好多的asp函数什么的，都不太清楚，所以下面的代码完全是用php的感觉写出来的，如果觉得乱请使劲拍砖！ 先]]></description>
				<content:encoded><![CDATA[<a href="https://www.52smile.cn/?p=619"><img width="640" height="225" src="http://www.52smile.cn/wp-content/uploads/2012/10/fenyedefengmian.jpg" class="attachment-post-thumbnail wp-post-image" alt="fenyedefengmian" itemprop="image" lazyload="1" /></a><p>PS:作为一个php开发者来说，突然让写一段asp的分页代码真是有点摸不着头脑。思想有、逻辑有，就是不会asp。于是乎，看了1个多小时的书写出了这样一堆厚重的分页代码！不过好的一点是：一次成型、效果堪称完美！</p>
<p>因为好多的asp函数什么的，都不太清楚，所以下面的代码完全是用php的感觉写出来的，如果觉得乱请使劲拍砖！<br />
先上效果图：<br />
<img class="aligncenter size-full wp-image-620" title="fenyexiaoguotu" src="http://www.52smile.cn/wp-content/uploads/2012/10/fenyexiaoguotu.jpg" alt="" width="602" height="91" /><br />
下面贴上代码：</p>
<div class="codecolorer-container asp blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br /></div></td><td><div class="asp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff6600;">//带省略号分页</span><br />
<span style="color: #990099; font-weight: bold;">Dim</span> Num,pPage,nPage,a,pageid<br />
pPage <span style="color: #006600; font-weight: bold;">=</span> Document<span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #cc0000;">&quot;PrevPage&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span> <span style="color: #ff6600;">//上一页</span><br />
nPage <span style="color: #006600; font-weight: bold;">=</span> Document<span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #cc0000;">&quot;NextPage&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span> <span style="color: #ff6600;">//下一页</span><br />
Num <span style="color: #006600; font-weight: bold;">=</span> document<span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #cc0000;">&quot;pageNum&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span> <span style="color: #ff6600;">//当前页</span><br />
pageid <span style="color: #006600; font-weight: bold;">=</span> document<span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #cc0000;">&quot;id&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span> <span style="color: #ff6600;">//当前页id (例12145.shtml、12145_2.shtml)</span><br />
<span style="color: #990099; font-weight: bold;">set</span> pageall <span style="color: #006600; font-weight: bold;">=</span> document<span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #cc0000;">&quot;pages&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span><br />
a<span style="color: #006600; font-weight: bold;">=</span><span style="color: #800000;">0</span><br />
<span style="color: #990099; font-weight: bold;">For</span> <span style="color: #990099; font-weight: bold;">each</span> page <span style="color: #990099; font-weight: bold;">in</span> pageall<br />
a<span style="color: #006600; font-weight: bold;">=</span>a+<span style="color: #800000;">1</span><br />
<span style="color: #990099; font-weight: bold;">Next</span><br />
<span style="color: #990099; font-weight: bold;">If</span> <span style="color: #330066;">Trim</span><span style="color: #006600; font-weight:bold;">&#40;</span>pPage<span style="color: #006600; font-weight:bold;">&#41;</span> <span style="color: #006600; font-weight: bold;">&lt;&gt;</span> <span style="color: #cc0000;">&quot;&quot;</span> <span style="color: #990099; font-weight: bold;">Then</span><br />
<span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">Output</span> <span style="color: #cc0000;">&quot;&lt;a href=&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> pPage <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot; id=&quot;</span><span style="color: #cc0000;">&quot;pre_page&quot;</span><span style="color: #cc0000;">&quot;&gt;上一页&lt;/a&gt;&quot;</span><br />
<span style="color: #990099; font-weight: bold;">End</span> <span style="color: #990099; font-weight: bold;">If</span><br />
<span style="color: #990099; font-weight: bold;">If</span> Num - <span style="color: #800000;">1</span> <span style="color: #006600; font-weight: bold;">&gt;</span> <span style="color: #800000;">4</span> <span style="color: #990099; font-weight: bold;">then</span><br />
<span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">Output</span> <span style="color: #cc0000;">&quot;&lt;a href=&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> pageid <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;.shtml&gt;1&lt;/a&gt;&quot;</span><br />
<span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">Output</span> <span style="color: #cc0000;">&quot;...&quot;</span><br />
<span style="color: #990099; font-weight: bold;">For</span> i<span style="color: #006600; font-weight: bold;">=</span>Num-<span style="color: #800000;">3</span> <span style="color: #990099; font-weight: bold;">To</span> Num-<span style="color: #800000;">1</span><br />
<span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">Output</span> <span style="color: #cc0000;">&quot;&lt;a href=&quot;</span><span style="color: #006600; font-weight: bold;">&amp;</span> pageid <span style="color: #006600; font-weight: bold;">&amp;</span><span style="color: #cc0000;">&quot;_&quot;</span><span style="color: #006600; font-weight: bold;">&amp;</span> i <span style="color: #006600; font-weight: bold;">&amp;</span><span style="color: #cc0000;">&quot;.shtml&gt;&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> i <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;&lt;/a&gt;&quot;</span><br />
<span style="color: #990099; font-weight: bold;">Next</span><br />
<span style="color: #990099; font-weight: bold;">Else</span><br />
<span style="color: #990099; font-weight: bold;">For</span> i<span style="color: #006600; font-weight: bold;">=</span><span style="color: #800000;">1</span> <span style="color: #990099; font-weight: bold;">To</span> Num-<span style="color: #800000;">1</span><br />
<span style="color: #990099; font-weight: bold;">If</span> i<span style="color: #006600; font-weight: bold;">=</span><span style="color: #800000;">1</span> <span style="color: #990099; font-weight: bold;">then</span><br />
<span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">Output</span> <span style="color: #cc0000;">&quot;&lt;a href=&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> pageid <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;.shtml&gt;&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> i <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;&lt;/a&gt;&quot;</span><br />
<span style="color: #990099; font-weight: bold;">Else</span><br />
<span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">Output</span> <span style="color: #cc0000;">&quot;&lt;a href=&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> pageid <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;_&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> i <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;.shtml&gt;&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> i <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;&lt;/a&gt;&quot;</span><br />
<span style="color: #990099; font-weight: bold;">End</span> <span style="color: #990099; font-weight: bold;">if</span><br />
<span style="color: #990099; font-weight: bold;">Next</span><br />
<span style="color: #990099; font-weight: bold;">End</span> <span style="color: #990099; font-weight: bold;">If</span><br />
<span style="color: #990099; font-weight: bold;">If</span> Num <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #800000;">1</span> <span style="color: #990099; font-weight: bold;">Then</span><br />
<span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">Output</span> <span style="color: #cc0000;">&quot;&lt;a href=&quot;</span><span style="color: #006600; font-weight: bold;">&amp;</span> pageid <span style="color: #006600; font-weight: bold;">&amp;</span><span style="color: #cc0000;">&quot;.shtml class=&quot;</span><span style="color: #cc0000;">&quot;de&quot;</span><span style="color: #cc0000;">&quot;&gt;&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> Num <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;&lt;/a&gt;&quot;</span><br />
<span style="color: #990099; font-weight: bold;">Else</span><br />
<span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">Output</span> <span style="color: #cc0000;">&quot;&lt;a href=&quot;</span><span style="color: #006600; font-weight: bold;">&amp;</span> pageid <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;_&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> Num <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;.shtml class=&quot;</span><span style="color: #cc0000;">&quot;de&quot;</span><span style="color: #cc0000;">&quot;&gt;&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> Num <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;&lt;/a&gt;&quot;</span><br />
<span style="color: #990099; font-weight: bold;">End</span> <span style="color: #990099; font-weight: bold;">if</span><br />
<span style="color: #990099; font-weight: bold;">If</span> a - Num <span style="color: #006600; font-weight: bold;">&gt;</span> <span style="color: #800000;">4</span> <span style="color: #990099; font-weight: bold;">Then</span><br />
<span style="color: #990099; font-weight: bold;">For</span> i<span style="color: #006600; font-weight: bold;">=</span>Num+<span style="color: #800000;">1</span> <span style="color: #990099; font-weight: bold;">To</span> Num+<span style="color: #800000;">3</span><br />
<span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">Output</span> <span style="color: #cc0000;">&quot;&lt;a href=&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> pageid <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;_&quot;</span><span style="color: #006600; font-weight: bold;">&amp;</span> i <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;.shtml&gt;&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> i <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;&lt;/a&gt;&quot;</span><br />
<span style="color: #990099; font-weight: bold;">Next</span><br />
<span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">Output</span> <span style="color: #cc0000;">&quot;...&quot;</span><br />
<span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">Output</span> <span style="color: #cc0000;">&quot;&lt;a href=&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> pageid <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;_&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> a <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;.shtml&gt;&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> a <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;&lt;/a&gt;&quot;</span><br />
<span style="color: #990099; font-weight: bold;">Else</span><br />
<span style="color: #990099; font-weight: bold;">For</span> i<span style="color: #006600; font-weight: bold;">=</span>Num+<span style="color: #800000;">1</span> <span style="color: #990099; font-weight: bold;">To</span> a <br />
<span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">Output</span> <span style="color: #cc0000;">&quot;&lt;a href=&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> pageid <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;_&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> i <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;.shtml&gt;&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> i <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot;&lt;/a&gt;&quot;</span><br />
<span style="color: #990099; font-weight: bold;">Next</span><br />
<span style="color: #990099; font-weight: bold;">End</span> <span style="color: #990099; font-weight: bold;">If</span><br />
<span style="color: #990099; font-weight: bold;">If</span> <span style="color: #330066;">Trim</span><span style="color: #006600; font-weight:bold;">&#40;</span>nPage<span style="color: #006600; font-weight:bold;">&#41;</span> <span style="color: #006600; font-weight: bold;">&lt;&gt;</span> <span style="color: #cc0000;">&quot;&quot;</span> <span style="color: #990099; font-weight: bold;">Then</span><br />
<span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">Output</span> <span style="color: #cc0000;">&quot;&lt;a href=&quot;</span> <span style="color: #006600; font-weight: bold;">&amp;</span> nPage <span style="color: #006600; font-weight: bold;">&amp;</span> <span style="color: #cc0000;">&quot; id=&quot;</span><span style="color: #cc0000;">&quot;next_page&quot;</span><span style="color: #cc0000;">&quot;&gt;下一页&lt;/a&gt;&quot;</span><br />
<span style="color: #990099; font-weight: bold;">End</span> <span style="color: #990099; font-weight: bold;">If</span></div></td></tr></tbody></table></div>
<p>希望有asp的大神给予建议，本人phper一枚！</p>
]]></content:encoded>
			<wfw:commentRss>https://www.52smile.cn/?feed=rss2&#038;p=619</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>在discuz外部调用discuz登录及状态</title>
		<link>https://www.52smile.cn/?p=525</link>
		<comments>https://www.52smile.cn/?p=525#comments</comments>
		<pubDate>Tue, 11 Sep 2012 04:56:55 +0000</pubDate>
		<dc:creator><![CDATA[子涛]]></dc:creator>
				<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[浅谈工作]]></category>
		<category><![CDATA[discuz登录]]></category>
		<category><![CDATA[discuz登录外部调用]]></category>

		<guid isPermaLink="false">http://www.52smile.cn/?p=525</guid>
		<description><![CDATA[<a href="https://www.52smile.cn/?p=525"><img width="640" height="225" src="http://www.52smile.cn/wp-content/uploads/2012/09/dede.jpg" class="attachment-post-thumbnail wp-post-image" alt="dede" itemprop="image" lazyload="1" /></a>最近做了一个dede二次开发的小项目，这也算是我真真第一次接触dede,之前有听说过其强大和灵活性，但一直没有去亲身去了解！项目的时间大概用了3天左右，简单的说也就是一个做了一个小站而已！期间通过看百度文库自己写了一个活动招募的插件，dede的插件确实非常简单（至少相对于一般discuz插件来说），而且流程也特别的清晰]]></description>
				<content:encoded><![CDATA[<a href="https://www.52smile.cn/?p=525"><img width="640" height="225" src="http://www.52smile.cn/wp-content/uploads/2012/09/dede.jpg" class="attachment-post-thumbnail wp-post-image" alt="dede" itemprop="image" lazyload="1" /></a><p>最近做了一个dede二次开发的小项目，这也算是我真真第一次接触dede,之前有听说过其强大和灵活性，但一直没有去亲身去了解！项目的时间大概用了3天左右，简单的说也就是一个做了一个小站而已！期间通过看百度文库自己写了一个活动招募的插件，dede的插件确实非常简单（至少相对于一般discuz插件来说），而且流程也特别的清晰！不过说这么多，我还是只能作为新手的层面来表述，说的不好、不对望大神们原谅！</p>
<p> 说完了没用的，就说一下重点吧。因为这个项目比较小，当时提供模板的时候没有想到做登录和注册的模板同时要做到和discuz之间的通信，我也安装uc和discuz并做了两个应用之间的通信。但问题还是出来了，因为两个应用通信只是单纯的实现了，同步登陆和退出。具体的登录和注册还是要分开进行的，模板是独立开的！</p>
<p>我的目的很简单，就是在cms的首页放上discuz的登陆框，并且登录和注册都去discuz完成然后返回登录状态，这样就可以免去安装uc，以及设置通信、同时还能满足同步登陆、同步退出，大大的提高用户体验！</p>
<p>我的具体做法步骤很简单：</p>
<p>第一、在discuz的根目录新建文件 discuz_denglu.php 这个文件用来调用discuz的核心类，因为class_core.php文件里面有限制，不允许在discuz外部调用该类，所以为了保持核心文件的完整性、原始性我们选择在discuz根目录建新文件用来调用核心类！</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #666666; font-style: italic;">//调用discuz公共执行类等核心代码 begin</span><br />
&nbsp;<span style="color: #b1b100;">require</span> <span style="color: #0000ff;">'./source/class/class_core.php'</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000088;">$discuz</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span> discuz_core<span style="color: #339933;">::</span><span style="color: #004000;">instance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000088;">$discuz</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;">//调用discuz公共执行类等核心代码 end</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'action'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'login'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_G</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'uid'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'1'</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #b1b100;">else</span><br />
&nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'您好,尊贵的会员 &lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_G</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'username'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/span&gt; '</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;a href=&quot;http://www.xxx.com/bbs/home.php?mod=space&amp;amp;uid='</span><span style="color: #339933;">.</span><span style="color: #000088;">$_G</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'uid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&amp;amp;do=index&amp;amp;view='</span><span style="color: #339933;">.</span><span style="color: #000088;">$_G</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'username'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;&gt;我的地盘&lt;/a&gt;  &lt;a href=&quot;http://www.xxx.com/bbs/home.php?mod=space&amp;amp;do=home&quot;&gt;最新动态&lt;/a&gt;  &lt;a href=&quot;http://www.xxx.com/bbs/member.php?mod=logging&amp;amp;action=logout&amp;amp;fromhash='</span><span style="color: #339933;">.</span>FROMHASH<span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;&gt;退出登录&lt;/a&gt;'</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>从该文件代码我们不难看出，这几句代码就可以实现discuz登录和未登录状态。同时可以在文件里使用discuz的所有全局变量。<br />
看到这里大家是不是就可以看出我下部要做什么了，因为我的最终目的是实现在模板显示登录和未登录两种状态，这种情况下我们肯定会果断选择通过ajax来实现其效果，这样才能做到完美无缺。<br />
贴一下模板代码(js)：</p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
$<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; $.<span style="color: #660066;">ajax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; url<span style="color: #339933;">:</span><span style="color: #3366CC;">'http://www.xxx.com/bbs/discuz_denglu.php?action=login'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; type<span style="color: #339933;">:</span><span style="color: #3366CC;">'GET'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; cache<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; success<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>msg <span style="color: #339933;">==</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#lsform'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#logging'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#lsform'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#logging'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#logging'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<p>cms首页html代码：</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;lsform&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;legReg&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;display: none;&quot;</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xxx.com.cn/bbs/member.php?mod=logging&amp;amp;action=login&amp;amp;loginsubmit=yes&amp;amp;infloat=yes&amp;amp;lssubmit=yes&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">onsubmit</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;return lsSubmit();&quot;</span>&gt;</span>用户名：<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;inputSty&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;username&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
密码：<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;inputSty&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submitBtn&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;提交&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;reg&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.xxx.com/bbs/member.php?mod=register&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;{dede:global.cfg_templets_skin/}/images/btn.jpg&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;立即注册&quot;</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;64&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;21&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;display:none; margin-left:100px;&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;logging&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span></div></td></tr></tbody></table></div>
<p><strong>第二种解决方式(解决跨域调用)：</strong><br />
修改上面的discuz_denglu.php文件为：</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
&nbsp;<span style="color: #666666; font-style: italic;">//调用discuz公共执行类等核心代码 begin</span><br />
&nbsp;<span style="color: #b1b100;">require</span> <span style="color: #0000ff;">'./source/class/class_core.php'</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000088;">$discuz</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span> discuz_core<span style="color: #339933;">::</span><span style="color: #004000;">instance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp;<span style="color: #000088;">$discuz</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//调用discuz公共执行类等核心代码 end</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_G</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'uid'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #666666; font-style: italic;">//这里做一下修改</span><br />
&nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;form id=&quot;lsform&quot; class=&quot;legReg&quot; style=&quot;display: none;&quot; action=&quot;http://www.xxx.com.cn/bbs/member.php?mod=logging&amp;amp;action=login&amp;amp;loginsubmit=yes&amp;amp;infloat=yes&amp;amp;lssubmit=yes&quot; method=&quot;post&quot; onsubmit=&quot;return lsSubmit();&quot;&gt;用户名：&lt;input class=&quot;inputSty&quot; type=&quot;text&quot; name=&quot;username&quot; /&gt;<br />
密码：&lt;input class=&quot;inputSty&quot; type=&quot;password&quot; name=&quot;password&quot; /&gt;<br />
&lt;input class=&quot;submitBtn&quot; type=&quot;submit&quot; value=&quot;提交&quot; /&gt;<br />
&lt;a class=&quot;reg&quot; href=&quot;http://www.xxx.com/bbs/member.php?mod=register&quot;&gt;&lt;img src=&quot;{dede:global.cfg_templets_skin/}/images/btn.jpg&quot; alt=&quot;立即注册&quot; width=&quot;64&quot; height=&quot;21&quot; /&gt;&lt;/a&gt;<br />
&lt;/form&gt;'</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">else</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'您好,尊贵的会员 &lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_G</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'username'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/span&gt;&lt;/strong&gt; '</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;a href=&quot;http://www.xxx.com/bbs/home.php?mod=space&amp;amp;uid='</span><span style="color: #339933;">.</span><span style="color: #000088;">$_G</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'uid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&amp;amp;do=index&amp;amp;view='</span><span style="color: #339933;">.</span><span style="color: #000088;">$_G</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'username'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;&gt;我的地盘&lt;/a&gt; &lt;a href=&quot;http://www.xxx.com/bbs/home.php?mod=space&amp;amp;do=home&quot;&gt;最新动态&lt;/a&gt; &lt;a href=&quot;http://www.xxx.com/bbs/member.php?mod=logging&amp;amp;action=logout&amp;amp;fromhash='</span><span style="color: #339933;">.</span>FROMHASH<span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;&gt;退出登录&lt;/a&gt;'</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>通过以上修改，我们如果需要在页面调用可以直接在html页面加入</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">iframe</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://bbs.xxx.com/discuz_denglu.php&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">iframe</span>&gt;</span></div></td></tr></tbody></table></div>
<p>iframe的属性自己定制就可以，以下是iframe的基本用法。</p>
<div>
<h2>iframe可选的属性</h2>
<table class="dataintable" border=1 align=center>
<tbody>
<tr>
<th>属性</th>
<th>值</th>
<th>描述</th>
<th>DTD</th>
</tr>
<tr>
<td><a title="HTML &lt;iframe&gt; 标签的 align 属性" href="/tags/att_iframe_align.asp">align</a></td>
<td>
<ul>
<li>left</li>
<li>right</li>
<li>top</li>
<li>middle</li>
<li>bottom</li>
</ul>
</td>
<td><span class="deprecated">不赞成使用。</span>请使用样式代替。</p>
<p>规定如何根据周围的元素来对齐此框架。</td>
<td>TF</td>
</tr>
<tr>
<td><a title="HTML &lt;iframe&gt; 标签的 frameborder 属性" href="/tags/att_iframe_frameborder.asp">frameborder</a></td>
<td>
<ul>
<li>1</li>
<li>0</li>
</ul>
</td>
<td>规定是否显示框架周围的边框。</td>
<td>TF</td>
</tr>
<tr>
<td><a title="HTML &lt;iframe&gt; 标签的 height 属性" href="/tags/att_iframe_height.asp">height</a></td>
<td>
<ul>
<li><em>pixels</em></li>
<li><em>%</em></li>
</ul>
</td>
<td>规定 iframe 的高度。</td>
<td>TF</td>
</tr>
<tr>
<td><a title="HTML &lt;iframe&gt; 标签的 longdesc 属性" href="/tags/att_iframe_longdesc.asp">longdesc</a></td>
<td><em>URL</em></td>
<td>规定一个页面，该页面包含了有关 iframe 的较长描述。</td>
<td>TF</td>
</tr>
<tr>
<td><a title="HTML &lt;iframe&gt; 标签的 marginheight 属性" href="/tags/att_iframe_marginheight.asp">marginheight</a></td>
<td><em>pixels</em></td>
<td>定义 iframe 的顶部和底部的边距。</td>
<td>TF</td>
</tr>
<tr>
<td><a title="HTML &lt;iframe&gt; 标签的 marginwidth 属性" href="/tags/att_iframe_marginwidth.asp">marginwidth</a></td>
<td><em>pixels</em></td>
<td>定义 iframe 的左侧和右侧的边距。</td>
<td>TF</td>
</tr>
<tr>
<td><a title="HTML &lt;iframe&gt; 标签的 name 属性" href="/tags/att_iframe_name.asp">name</a></td>
<td><em>frame_name</em></td>
<td>规定 iframe 的名称。</td>
<td>TF</td>
</tr>
<tr>
<td><a title="HTML &lt;iframe&gt; 标签的 scrolling 属性" href="/tags/att_iframe_scrolling.asp">scrolling</a></td>
<td>
<ul>
<li>yes</li>
<li>no</li>
<li>auto</li>
</ul>
</td>
<td>规定是否在 iframe 中显示滚动条。</td>
<td>TF</td>
</tr>
<tr>
<td><a title="HTML &lt;iframe&gt; 标签的 src 属性" href="/tags/att_iframe_src.asp">src</a></td>
<td><em>URL</em></td>
<td>规定在 iframe 中显示的文档的 URL。</td>
<td>TF</td>
</tr>
<tr>
<td><a title="HTML &lt;iframe&gt; 标签的 width 属性" href="/tags/att_iframe_width.asp">width</a></td>
<td>
<ul>
<li><em>pixels</em></li>
<li><em>%</em></li>
</ul>
</td>
<td>定义 iframe 的宽度。</td>
<td>TF</td>
</tr>
</tbody>
</table>
</div>
<p>以上就是我的解决方式，这样我们就可以非常轻松的解决这个问题。</p>
<p>如果有说的不好、不明白的地方，请高手指点！！</p>
]]></content:encoded>
			<wfw:commentRss>https://www.52smile.cn/?feed=rss2&#038;p=525</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>discuz分享之常用修改</title>
		<link>https://www.52smile.cn/?p=435</link>
		<comments>https://www.52smile.cn/?p=435#comments</comments>
		<pubDate>Thu, 09 Aug 2012 15:45:27 +0000</pubDate>
		<dc:creator><![CDATA[子涛]]></dc:creator>
				<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[discuz]]></category>
		<category><![CDATA[常用修改]]></category>

		<guid isPermaLink="false">http://www.52smile.cn/?p=435</guid>
		<description><![CDATA[<a href="https://www.52smile.cn/?p=435"><img width="550" height="120" src="http://www.52smile.cn/wp-content/uploads/2012/08/discuz_cygn.jpg" class="attachment-post-thumbnail wp-post-image" alt="discuz_cygn" itemprop="image" lazyload="1" /></a>PS：笔者在此总结了几个在discuz经常会遇到的几个修改，并整理详细的修改步骤！ 1、修改商品贴内容页，删除“在线砍价”按钮 附言：随着discuz升级，随之而来的功能也越来越五花八门。无论是贴心的新功能也或者一些老的功能的优化，但总会有一些东西对我们而言没有用武之地，也或者说是太过贴心。此修改意在为利用discuz]]></description>
				<content:encoded><![CDATA[<a href="https://www.52smile.cn/?p=435"><img width="550" height="120" src="http://www.52smile.cn/wp-content/uploads/2012/08/discuz_cygn.jpg" class="attachment-post-thumbnail wp-post-image" alt="discuz_cygn" itemprop="image" lazyload="1" /></a><p>PS：笔者在此总结了几个在discuz经常会遇到的几个修改，并整理详细的修改步骤！</p>
<p>1、修改商品贴内容页，删除“在线砍价”按钮<br />
附言：随着discuz升级，随之而来的功能也越来越五花八门。无论是贴心的新功能也或者一些老的功能的优化，但总会有一些东西对我们而言没有用武之地，也或者说是太过贴心。此修改意在为利用discuz商品主题做商城的网站避免因无聊砍价造成的信息为目的。</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">修改页面/template/default/forum/trade_info.html<br />
修改行数159--161行，注释砍价按钮即可！<br />
<span style="color: #808080; font-style: italic;">&lt;!--修改:关闭&quot;砍价按钮&quot;--&gt;</span><br />
<span style="color: #808080; font-style: italic;">&lt;!--&lt;button onclick=&quot;showWindow('sendpm', 'home.php?mod=spacecp&amp;ac=pm&amp;op=showmsg&amp;handlekey=showmsg_$post[authorid]&amp;touid=$post[authorid]&amp;pmid=0&amp;daterange=2&amp;tradeid=$post[pid]')&quot; class=&quot;pn&quot;&gt;&lt;span&gt;&lt;!--{if $online}--&gt;</span>{lang #on_line}<span style="color: #808080; font-style: italic;">&lt;!--{/if}--&gt;</span>{lang #trade_bargain}<span style="color: #808080; font-style: italic;">&lt;!--&lt;/span&gt;--&gt;</span><br />
<span style="color: #808080; font-style: italic;">&lt;!--{/if}--&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span></div></td></tr></tbody></table></div>
<p>2、修改商城交易记录自动被删除的问题<br />
附言：此修改意在解决交易记录自动被删除的问题，对于一些站利用discuz自带的商品主题作为商城并无需定期清理交易记录的网站比较有用，因为discuz的计划任务会定期将7天内的交易记录清空，这样一来对于上面讲到的此类网站将会产生一定的损失和没必要的麻烦！</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">//修改页面：cron_clearup_daily.php</span><br />
<span style="color: #666666; font-style: italic;">//修改行数 35 行：</span><br />
<span style="color: #666666; font-style: italic;">//2012/7/24 修改计划任务删除交易记录时间</span><br />
C<span style="color: #339933;">::</span><span style="color: #004000;">t</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'forum_trade'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">update_closed</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_G</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'timestamp'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
C<span style="color: #339933;">::</span><span style="color: #004000;">t</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'forum_tradelog'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">clear_failure</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
C<span style="color: #339933;">::</span><span style="color: #004000;">t</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'forum_tradelog'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">expiration_payed</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
C<span style="color: #339933;">::</span><span style="color: #004000;">t</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'forum_tradelog'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">expiration_finished</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//以上的7均为默认时间，可自定义！</span></div></td></tr></tbody></table></div>
<p>3、修改帖子内容页主题下方通栏广告不能100%通栏的问题<br />
修改模板页面/templates/default/fourm/viewthread_node.htm<br />
修改行数：498行，499行<br />
修改代码</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">&lt;!--&lt;td class=&quot;pls&quot;&gt;--&gt;</span> &nbsp;注释498行的td<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;plc&quot;</span> <span style="color: #000066;">colspan</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'2'</span>&gt;</span> &nbsp;添加属性colspan='2'<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span></div></td></tr></tbody></table></div>
<p>4、修改帖子内容页左侧用户头像下方用户组，将用户组名称删除并改为图标的问题</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;!--</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">if</span> <span style="color: #000088;">$post</span><span style="color: #009900;">&#91;</span>groupicon<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">--&gt;&lt;</span>p<span style="color: #339933;">&gt;&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;home.php?mod=spacecp&amp;ac=usergroup&amp;gid=<span style="color: #006699; font-weight: bold;">$post[groupid]</span>&quot;</span> target<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;_blank&quot;</span><span style="color: #339933;">&gt;</span><span style="color: #000088;">$post</span><span style="color: #009900;">&#91;</span>groupicon<span style="color: #009900;">&#93;</span><span style="color: #339933;">&lt;/</span>a<span style="color: #339933;">&gt;&lt;/</span>p<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;!--</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">/</span><span style="color: #b1b100;">if</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">--&gt;</span><br />
<span style="color: #339933;">&lt;</span>p<span style="color: #339933;">&gt;&lt;</span>em<span style="color: #339933;">&gt;&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;home.php?mod=spacecp&amp;ac=usergroup&amp;gid=<span style="color: #006699; font-weight: bold;">$post[groupid]</span>&quot;</span> target<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;_blank&quot;</span><span style="color: #339933;">&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$post</span><span style="color: #009900;">&#91;</span>authortitle<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">&lt;/</span>a<span style="color: #339933;">&gt;&lt;/</span>em<span style="color: #339933;">&gt;&lt;/</span>p<span style="color: #339933;">&gt;</span><br />
<span style="color: #666666; font-style: italic;">//修改为：</span><br />
<span style="color: #339933;">&lt;!--</span><span style="color: #009900;">&#123;</span><span style="color: #b1b100;">if</span> <span style="color: #000088;">$post</span><span style="color: #009900;">&#91;</span>groupicon<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">--&gt;</span><br />
<span style="color: #339933;">&lt;</span>center<span style="color: #339933;">&gt;&lt;</span>p<span style="color: #339933;">&gt;&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;home.php?mod=spacecp&amp;ac=usergroup&amp;gid=<span style="color: #006699; font-weight: bold;">$post[groupid]</span>&quot;</span> target<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;_blank&quot;</span><span style="color: #339933;">&gt;</span><span style="color: #000088;">$post</span><span style="color: #009900;">&#91;</span>groupicon<span style="color: #009900;">&#93;</span><span style="color: #339933;">&lt;/</span>a<span style="color: #339933;">&gt;&lt;/</span>p<span style="color: #339933;">&gt;&lt;/</span>center<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;!--</span><span style="color: #009900;">&#123;</span><span style="color: #339933;">/</span><span style="color: #b1b100;">if</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">--&gt;</span><br />
<span style="color: #666666; font-style: italic;">//将此行显示的用户组名称 屏蔽</span><br />
<span style="color: #339933;">&lt;!--&lt;</span>p<span style="color: #339933;">&gt;&lt;</span>em<span style="color: #339933;">&gt;&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;home.php?mod=spacecp&amp;ac=usergroup&amp;gid=<span style="color: #006699; font-weight: bold;">$post[groupid]</span>&quot;</span> target<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;_blank&quot;</span><span style="color: #339933;">&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$post</span><span style="color: #009900;">&#91;</span>authortitle<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">&lt;/</span>a<span style="color: #339933;">&gt;&lt;/</span>em<span style="color: #339933;">&gt;--&gt;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>https://www.52smile.cn/?feed=rss2&#038;p=435</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>discuz功能分享之修改文章聚合标签数量</title>
		<link>https://www.52smile.cn/?p=413</link>
		<comments>https://www.52smile.cn/?p=413#comments</comments>
		<pubDate>Mon, 06 Aug 2012 15:01:54 +0000</pubDate>
		<dc:creator><![CDATA[子涛]]></dc:creator>
				<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[discuz]]></category>
		<category><![CDATA[聚合标签]]></category>

		<guid isPermaLink="false">http://www.52smile.cn/?p=413</guid>
		<description><![CDATA[<a href="https://www.52smile.cn/?p=413"><img width="550" height="120" src="http://www.52smile.cn/wp-content/uploads/2012/08/discuz_tag.jpg" class="attachment-post-thumbnail wp-post-image" alt="discuz_tag" itemprop="image" lazyload="1" /></a>PS:discuz的文章聚合标签默认只有8个，一般情况下8个聚合标签已经完全够用。但是如果遇到特殊情况我们又不得不去想方设法修改，discuz后台是没有地方可以进行手动设置的，这种情况下就需要技术人员的配合了，不过如果你对discuz不是足够熟悉的话那也得费些功夫了。不过笔者前些时段就遇到了关于聚合标签的问题，所以乘热]]></description>
				<content:encoded><![CDATA[<a href="https://www.52smile.cn/?p=413"><img width="550" height="120" src="http://www.52smile.cn/wp-content/uploads/2012/08/discuz_tag.jpg" class="attachment-post-thumbnail wp-post-image" alt="discuz_tag" itemprop="image" lazyload="1" /></a><p>PS:discuz的文章聚合标签默认只有8个，一般情况下8个聚合标签已经完全够用。但是如果遇到特殊情况我们又不得不去想方设法修改，discuz后台是没有地方可以进行手动设置的，这种情况下就需要技术人员的配合了，不过如果你对discuz不是足够熟悉的话那也得费些功夫了。不过笔者前些时段就遇到了关于聚合标签的问题，所以乘热打铁就当复习了，希望对需要的童鞋有用！</p>
<p>下面写出具体修改的文件，以及所在位置。贴出代码：<br />
1、表dx_portal_article_title中的tag字段由tinyint 长度8 改为int 长度 11   （此处以增加到27个为例）<br />
2、source/admincp/admincp_article.php文件第51行：</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp;showformheader<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'article&amp;operation=tag'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp;showtableheader<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'article_tag_setting'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp;<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span> <span style="color: #339933;">=</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//修改8为27</span></div></td></tr></tbody></table></div>
<p>3、source/function/function_portalcp.php文件<br />
   </code></p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//第670行开始，依次找到8的地方：</span><br />
&nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">function</span> article_tagnames<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <br />
&nbsp; &nbsp;<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; ……<br />
&nbsp; &nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//里的 for($i=1; $i&lt; =8; $i++)</span><br />
&nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">function</span> article_parse_tags<span style="color: #009900;">&#40;</span><span style="color: #000088;">$tag</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; ……<br />
&nbsp; &nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//里的 for($i=1; $i&lt;=8; $i++)</span><br />
&nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">function</span> article_make_tag<span style="color: #009900;">&#40;</span><span style="color: #000088;">$tags</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; ……<br />
&nbsp; &nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//里的 for($i=1; $i&lt;=8; $i++)</span><br />
&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//修改8为27</span></div></td></tr></tbody></table></div>
<p>修改完毕，更新缓存就ok了！<br />
希望对需要的人有所受用，如有疑问请留言！</code></p>
]]></content:encoded>
			<wfw:commentRss>https://www.52smile.cn/?feed=rss2&#038;p=413</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>新浪API，提取微博账号的信息，粉丝数、微博数等</title>
		<link>https://www.52smile.cn/?p=215</link>
		<comments>https://www.52smile.cn/?p=215#comments</comments>
		<pubDate>Fri, 20 Jul 2012 09:15:54 +0000</pubDate>
		<dc:creator><![CDATA[子涛]]></dc:creator>
				<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[新浪api]]></category>
		<category><![CDATA[用户]]></category>

		<guid isPermaLink="false">http://www.52smile.cn/?p=215</guid>
		<description><![CDATA[<a href="https://www.52smile.cn/?p=215"><img width="550" height="120" src="http://www.52smile.cn/wp-content/uploads/2012/07/open.jpg" class="attachment-post-thumbnail wp-post-image" alt="open" itemprop="image" lazyload="1" /></a>PS:随着现在新浪微博的广泛使用，微博平台的开放性也越来越受关注，应用的互联和网站的接入，为我们提供了越来越方便的互联网体验，因此对开发者来说，开发也变得越来越广，越来越容易，我今天主要来分享一下通过新浪微博开放API来获取个人微博账号的信息，例如，获取微博账号的粉丝数、微博数、关注等。 对于我这样的初学者来说，也是因]]></description>
				<content:encoded><![CDATA[<a href="https://www.52smile.cn/?p=215"><img width="550" height="120" src="http://www.52smile.cn/wp-content/uploads/2012/07/open.jpg" class="attachment-post-thumbnail wp-post-image" alt="open" itemprop="image" lazyload="1" /></a><p>PS:随着现在新浪微博的广泛使用，微博平台的开放性也越来越受关注，应用的互联和网站的接入，为我们提供了越来越方便的互联网体验，因此对开发者来说，开发也变得越来越广，越来越容易，我今天主要来分享一下通过新浪微博开放API来获取个人微博账号的信息，例如，获取微博账号的粉丝数、微博数、关注等。</p>
<p>对于我这样的初学者来说，也是因为最近需要才开始小小研究了一下，结果发现还是比较简单的，但是你还是需要认真了解一下新浪微博的api,这样以便于你更好的获取你想要的数据，因为我主要是获取微博数，以及粉丝数。所以我调用了users/show 微博接口，这个接口可以提供的数据主要是你账号的基本资料，但是还是比较完全的。<br />
微博API关于调取用户接口地址:<a>http://open.weibo.com/wiki/2/users/show</a>,可以通过这个文档详细的看一下。<br />
调用的基本原理很简单，就是我们将账号的信息(id,appkey,昵称)通过GET方式提交给新浪开放平台，然后获取到授权，同时将数据以json的格式返回。<br />
//我们简单的测试一下<br />
http://api.t.sina.com.cn/users/show.json?source=APPKEY&amp;user_id=XXXXXXX&amp;screen_name=carl_涛 直接在地址栏提交看是否返回数据，这里我做一下解释<br />
source ==&gt;[必须参数] 参数source处填写微博的appkey 需要申请appkey；申请地址：[<a title="xweibo首页" href="http://x.weibo.com/" target="_blank">点击前往</a>]<br />
user_id ==&gt;[可选参数] 参数user_id 是你微博账号的id 登录微博之后看到首页 链接后面就可以看到(在没有设置个性域名的前提下)，weibo.com/xxxx 这串数组就是你的 user_id 了<br />
screen_name ==&gt;[可选参数]这是微博的昵称<br />
如果访问以上链接可以看到返回的数据，说明你的参数是对的，已经取到了数据。然后接下来怎么处理就很简单了，这下我们利用ajax来处理一下，因为是json格式的数据，我们可以使用php来获取数据，如果在页面上js还是最合适的。<br />
下面我是我写的ajax获取信息：</p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#submit'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #003366; font-weight: bold;">var</span> html<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span><br />
$.<span style="color: #660066;">ajax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><br />
url<span style="color: #339933;">:</span><span style="color: #3366CC;">'http://api.t.sina.com.cn/users/show.json?source=3476523072&amp;user_id=xxxxxx&amp;screen_name=carl_%E6%B6%9B'</span><span style="color: #339933;">,</span><br />
Type<span style="color: #339933;">:</span><span style="color: #3366CC;">'GET'</span><span style="color: #339933;">,</span><br />
dataType<span style="color: #339933;">:</span><span style="color: #3366CC;">'json'</span><span style="color: #339933;">,</span><br />
cache<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span><br />
success<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; html <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;ul&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; html <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;li&gt;ID:&quot;</span><span style="color: #339933;">+</span>msg.<span style="color: #660066;">id</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/li&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; html <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;li&gt;昵称:&quot;</span><span style="color: #339933;">+</span>msg.<span style="color: #660066;">screen_name</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/li&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; html <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;li&gt;粉丝数:&quot;</span><span style="color: #339933;">+</span>msg.<span style="color: #660066;">followers_count</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/li&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; html <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;li&gt;关注:&quot;</span><span style="color: #339933;">+</span>msg.<span style="color: #660066;">friends_count</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/li&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; html <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;li&gt;微博数:&quot;</span><span style="color: #339933;">+</span>msg.<span style="color: #660066;">statuses_count</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/li&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; html <span style="color: #339933;">+=</span><span style="color: #3366CC;">&quot;&lt;/ul&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; document.<span style="color: #000066; font-weight: bold;">write</span><span style="color: #009900;">&#40;</span>html<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000066; font-weight: bold;">else</span><br />
<span style="color: #009900;">&#123;</span><br />
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'调用数据不存在!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<p>通过这样我们就可以把需要的数据在需要的地方给展现出来，如果需要更多的信息可以按需要提取，我这里为举例子就写了这几条。<br />
个人分享文章，高手请绕行，希望对需要的人有所受用！<span style="color: red;">如果有错误，请指点！</span><br />
新浪2.0用户接口地址：<br />
<em>https://api.weibo.com/2/users/show.json?source=xxx&#038;uid=xxxxx </em><br />
<font color='red'>注：因新浪微博开放接口已升级到V2接口，以下更新2.0的写法同时为解决ajax跨域问题，以下获取数据格式将使用jsonp格式。</font><br />
<font color='red'>更新时间：2013-03-04</font><br />
ajax:</p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #003366; font-weight: bold;">var</span> html<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; $.<span style="color: #660066;">ajax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; url<span style="color: #339933;">:</span><span style="color: #3366CC;">'https://api.weibo.com/2/users/show.json?source=xxx&amp;uid=xxxxxxxx'</span><span style="color: #339933;">,</span> &nbsp; <span style="color: #006600; font-style: italic;">//参数与v1接口相似</span><br />
&nbsp; &nbsp; type<span style="color: #339933;">:</span><span style="color: #3366CC;">'GET'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; dataType<span style="color: #339933;">:</span><span style="color: #3366CC;">'jsonp'</span><span style="color: #339933;">,</span> &nbsp; <span style="color: #006600; font-style: italic;">//[重要],默认是支持jsonp格式数据的返回可解决跨域问题；</span><br />
&nbsp; &nbsp; cache<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; success<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">//获取返回信息</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>msg<span style="color: #339933;">!=</span><span style="color: #3366CC;">''</span> <span style="color: #339933;">&amp;&amp;</span> msg<span style="color: #339933;">!=</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; html <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;ul&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; html <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;li&gt;ID:&quot;</span><span style="color: #339933;">+</span>msg.<span style="color: #660066;">data</span>.<span style="color: #660066;">id</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/li&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; html <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;li&gt;昵称:&quot;</span><span style="color: #339933;">+</span>msg.<span style="color: #660066;">data</span>.<span style="color: #660066;">screen_name</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/li&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; html <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;li&gt;粉丝数:&quot;</span><span style="color: #339933;">+</span>msg.<span style="color: #660066;">data</span>.<span style="color: #660066;">followers_count</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/li&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; html <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;li&gt;关注:&quot;</span><span style="color: #339933;">+</span>msg.<span style="color: #660066;">data</span>.<span style="color: #660066;">friends_count</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/li&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; html <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;&lt;li&gt;微博数:&quot;</span><span style="color: #339933;">+</span>msg.<span style="color: #660066;">data</span>.<span style="color: #660066;">statuses_count</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/li&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; html <span style="color: #339933;">+=</span><span style="color: #3366CC;">&quot;&lt;/ul&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; document.<span style="color: #000066; font-weight: bold;">write</span><span style="color: #009900;">&#40;</span>html<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'调用数据不存在!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<blockquote><p>
<font color='red'>更新时间：2014-10-14</font><br />
发现近期有很多童鞋访问该文章，如果有问题或者对代码有疑虑可在评论区留言我会定期查看并进行完善。谢谢！
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>https://www.52smile.cn/?feed=rss2&#038;p=215</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[php]xml解析错误,未组织好解决方法</title>
		<link>https://www.52smile.cn/?p=199</link>
		<comments>https://www.52smile.cn/?p=199#comments</comments>
		<pubDate>Mon, 16 Jul 2012 07:01:24 +0000</pubDate>
		<dc:creator><![CDATA[子涛]]></dc:creator>
				<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xml解析]]></category>
		<category><![CDATA[xml错误]]></category>

		<guid isPermaLink="false">http://www.52smile.cn/?p=199</guid>
		<description><![CDATA[<a href="https://www.52smile.cn/?p=199"><img width="550" height="120" src="http://www.52smile.cn/wp-content/uploads/2012/07/php.jpg" class="attachment-post-thumbnail wp-post-image" alt="php" itemprop="image" lazyload="1" /></a>PS：关于在php生成xml的过程中出现的解析错误的问题，我在这里分享一下我的经验，也许对大多数人来说这个问题过于简单，但是我自己碰上了一定要在这里记录一下，以免以后再出错，同时也可以给碰到该问题的朋友提供一些经验，避免更多人在此问题纠结！ 首先我在这做个实例： 这个xml文件用浏览器打开的时候会报错，提示xml解析错]]></description>
				<content:encoded><![CDATA[<a href="https://www.52smile.cn/?p=199"><img width="550" height="120" src="http://www.52smile.cn/wp-content/uploads/2012/07/php.jpg" class="attachment-post-thumbnail wp-post-image" alt="php" itemprop="image" lazyload="1" /></a><p>PS：关于在php生成xml的过程中出现的解析错误的问题，我在这里分享一下我的经验，也许对大多数人来说这个问题过于简单，但是我自己碰上了一定要在这里记录一下，以免以后再出错，同时也可以给碰到该问题的朋友提供一些经验，避免更多人在此问题纠结！</p>
<p>首先我在这做个实例：</p>
<p><a href="http://www.52smile.cn/archives/199.shtml/xml" rel="attachment wp-att-200"><img class="alignnone size-large wp-image-200" title="xml" src="http://www.52smile.cn/wp-content/uploads/2012/07/xml-600x99.jpg" alt="" width="600" height="99" /></a></p>
<p>这个xml文件用浏览器打开的时候会报错，提示xml解析错误:未组织好……,但是用编译器打开是正常的没有错误（如上图），所以这到底是哪里出错了呢？好的我们先看一下w3shcool里的关于实体的内容：</p>
<div>
<p>PCDATA 指的是<em>被解析的字符数据</em>（Parsed Character Data）。</p>
<p>XML 解析器通常会解析 XML 文档中所有的文本。</p>
<p>当某个 XML 元素被解析时，其标签之间的文本也会被解析：</p>
<pre>&lt;message&gt;此文本也会被解析&lt;/message&gt;</pre>
<p>解析器之所以这么做是因为 XML 元素可包含其他元素，就像这个例子中，其中的 &lt;name&gt; 元素包含着另外的两个元素(first 和 last)：</p>
<pre>&lt;name&gt;&lt;first&gt;Bill&lt;/first&gt;&lt;last&gt;Gates&lt;/last&gt;&lt;/name&gt;</pre>
<p>而解析器会把它分解为像这样的子元素：</p>
<pre>&lt;name&gt;
   &lt;first&gt;Bill&lt;/first&gt;
   &lt;last&gt;Gates&lt;/last&gt;
&lt;/name&gt;</pre>
</div>
<div>
<p><strong>非法的 XML 字符必须被替换为实体引用（entity reference）。</strong></p>
<p>假如您在 XML 文档中放置了一个类似 &#8220;&lt;&#8221; 字符，那么这个文档会产生一个错误，这是因为解析器会把它解释为新元素的开始。因此你不能这样写：</p>
</div>
<p>&lt;message&gt;if salary &lt; 1000 then&lt;/message&gt;</p>
<p>为了避免此类错误，需要把字符 &#8220;&lt;&#8221; 替换为实体引用，就像这样：</p>
<pre>&lt;message&gt;if salary &amp;lt; 1000 then&lt;/message&gt;</pre>
<pre>下面是xml里5个实体的引用：</pre>
<pre> <a href="http://www.52smile.cn/archives/199.shtml/xmlshiti" rel="attachment wp-att-201"><img class="alignnone size-full wp-image-201" title="xmlshiti" src="http://www.52smile.cn/wp-content/uploads/2012/07/xmlshiti.png" alt="" width="612" height="134" /></a></pre>
<p>注释：严格地讲，在 XML 中仅有字符 &#8220;&lt;&#8221;和&#8221;&amp;&#8221; 是非法的。省略号、引号和大于号是合法的，但是把它们替换为实体引用是个好的习惯。</p>
<pre> 所以由此我们可以看出，在遇到非法字符的时候我们一定要将字符转义为实体的形式，不然会出现报错的提示。</pre>
<pre> 除了把非法字符转义为实体之外，我们还需要知道另一种方式也可以避免在解析非法字符的时候报错的情况，下面先了解一下：CDATA(Unparsed Character Data),其意思是指不应由XML解析器解析的文本数据。</pre>
<pre>继续看关于CDATA的说明：</pre>
<p>在 XML 元素中，&#8221;&lt;&#8221; 和 &#8220;&amp;&#8221; 是非法的。</p>
<p>&#8220;&lt;&#8221; 会产生错误，因为解析器会把该字符解释为新元素的开始。</p>
<p>&#8220;&amp;&#8221; 也会产生错误，因为解析器会把该字符解释为字符实体的开始。</p>
<p>某些文本，比如 JavaScript 代码，包含大量 &#8220;&lt;&#8221; 或 &#8220;&amp;&#8221; 字符。为了避免错误，可以将脚本代码定义为 CDATA。</p>
<p>CDATA 部分中的所有内容都会被解析器忽略。</p>
<p>CDATA 部分由 &#8220;<em>&lt;![CDATA[</em>" 开始，由 "<em>]]&gt;</em>&#8221; 结束：</p>
<p><a href="http://www.52smile.cn/archives/199.shtml/xmlshiti-2" rel="attachment wp-att-203"><img class="alignnone size-full wp-image-203" title="xmlshiti" src="http://www.52smile.cn/wp-content/uploads/2012/07/xmlshiti1.png" alt="" width="603" height="226" /></a></p>
<p>在上面的例子中，解析器会忽略 CDATA 部分中的所有内容。</p>
<h3>关于 CDATA 部分的注释：</h3>
<p>CDATA 部分不能包含字符串 &#8220;]]&gt;&#8221;。也不允许嵌套的 CDATA 部分。</p>
<p>标记 CDATA 部分结尾的 &#8220;]]&gt;&#8221; 不能包含空格或折行。</p>
<p>好了，上面的讲解内容均来自w3school的解释，我在下面关于上面例子中的问题做一下处理，以便更容易理解，在报错的文件做一下小处理：</p>
<p><a href="http://www.52smile.cn/archives/199.shtml/xmlst" rel="attachment wp-att-204"><img class="alignnone size-large wp-image-204" title="xmlst" src="http://www.52smile.cn/wp-content/uploads/2012/07/xmlst-600x137.jpg" alt="" width="600" height="137" /></a></p>
<p>看上图，这样一来，我们就用CDATA对文本部分做了一下忽略解析，因此中间包含的&amp;非法字符就不会被xml解析器解析到了，所以也就不会报错了。</p>
<p>同理我们可以用转义字符效果也是一样的，“把&amp;替换为&amp;amp;就可以了”问题就很容易解决了！</p>
<p>此文纯为个人遇到的问题，高手请绕行，希望对需要的人有所受用！</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.52smile.cn/?feed=rss2&#038;p=199</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
