<?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>COMPIG的博客</title>
	<atom:link href="http://compig.net/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://compig.net/blog</link>
	<description>他说风雨中，这点痛算什么，擦干泪.....</description>
	<lastBuildDate>Wed, 18 Aug 2010 01:54:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>囧,今早在联盟看到有人发的腾讯的东东</title>
		<link>http://compig.net/blog/?p=304</link>
		<comments>http://compig.net/blog/?p=304#comments</comments>
		<pubDate>Wed, 18 Aug 2010 00:57:00 +0000</pubDate>
		<dc:creator>guangmin</dc:creator>
				<category><![CDATA[乐在其中]]></category>
		<category><![CDATA[游戏设计]]></category>

		<guid isPermaLink="false">http://compig.net/blog/?p=304</guid>
		<description><![CDATA[植物大战僵尸VS葫芦娃大战群妖
地址：葫芦娃大战群妖
]]></description>
			<content:encoded><![CDATA[<p>植物大战僵尸VS葫芦娃大战群妖<br />
地址：<a href="http://xx.qq.com/act/a20100505game/">葫芦娃大战群妖</a><br />
<a href="http://xx.qq.com/act/a20100505game/"><img src="http://compig.net/blog/wp-content/uploads/2010/08/2.jpg" alt="" title="葫芦娃大战群魔" width="600 height="400" class="aligncenter size-full wp-image-308" /></a></p>
<p>现在的休闲小游戏蛮火的，也许做小游戏也不错，利用业余时间研究下</p>
]]></content:encoded>
			<wfw:commentRss>http://compig.net/blog/?feed=rss2&amp;p=304</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>蛋蛋糖与100层</title>
		<link>http://compig.net/blog/?p=299</link>
		<comments>http://compig.net/blog/?p=299#comments</comments>
		<pubDate>Tue, 17 Aug 2010 09:55:35 +0000</pubDate>
		<dc:creator>guangmin</dc:creator>
				<category><![CDATA[游戏设计]]></category>

		<guid isPermaLink="false">http://compig.net/blog/?p=299</guid>
		<description><![CDATA[刚做的小游戏，桄欣说有很多bug，自己却没玩出来，博客没有加入排名的后台脚本，所以后面的积分更新会失败，图片素材用的是蛋蛋糖和大富翁8改的

]]></description>
			<content:encoded><![CDATA[<p>刚做的小游戏，桄欣说有很多bug，自己却没玩出来，博客没有加入排名的后台脚本，所以后面的积分更新会失败，图片素材用的是蛋蛋糖和大富翁8改的<br />
<embed height="400" width="440" pluginspage="http://www.macromedia.com/go/getflashplayer" allowscriptaccess="always" allowfullscreen="true" quality="high" bgcolor="#000000" name="100" id="100" src="http://eastgirl.org/game/swf/100.swf?u=100" type="application/x-shockwave-flash"></p>
]]></content:encoded>
			<wfw:commentRss>http://compig.net/blog/?feed=rss2&amp;p=299</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>谈AS3搭档NGINX制作FLV视频播放器</title>
		<link>http://compig.net/blog/?p=286</link>
		<comments>http://compig.net/blog/?p=286#comments</comments>
		<pubDate>Tue, 17 Aug 2010 02:22:14 +0000</pubDate>
		<dc:creator>guangmin</dc:creator>
				<category><![CDATA[AS相关]]></category>
		<category><![CDATA[Flex/Flash RIA]]></category>
		<category><![CDATA[计算机网络]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flv]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[视频]]></category>
		<category><![CDATA[？start=]]></category>

		<guid isPermaLink="false">http://compig.net/blog/?p=286</guid>
		<description><![CDATA[为了升级之前开发播放器功能，想要实现视频制定时间跳转播放而又不通过流媒体服务器，所以开始研究NGINX与flash的交互，但是国内相关的博客都是转来转去，搜出来的几乎全是一样，百分之百的教你怎么配置NGINX服务器和使用JW FLV Player，而对于AS3中怎样使用却无人提及，加之JW player的开源代码看起来比较恶心，所以决定研究flashAPI帮助文档和flv视频信息，最后后得到如下方法和心得，原理很简单：

传统的AS3播放flv的教程中对于快进的使用时NetStream.seek(播放时间)这个方法来实现的，其中参数里的播放时间需要在缓冲数据之内，而NGINX号称支持关键帧开始播放，实际的原理就是HTTP访问时，服务器返回的flv文件时从该关键帧开始加上相应的头部信息来实现的。这里我们要注意？start=xxxx中的xxxx一定要是flv视频信息中存在的帧才行，AS3中怎样获取flv视频的关键帧呢？

比如
PLAIN TEXT
ACTIONSCRIPT:




this._nc = new NetConnection&#40;&#41;;


this._nc.connect&#40;null&#41;;


this._ns = new NetStream&#40;this._nc&#41;;


var client:Object = new Object&#40;&#41;;


client.onMetaData = onMetaData;


this._ns.client = client; 






这段代码中返回onMetaData的方法中可以获取
PLAIN TEXT
ACTIONSCRIPT:




/**


* 获取视频信息


* @param&#160; &#160; evt


*/


private function onMetaData&#40;evt:Object&#41;:void


&#123;


&#160; &#160; &#160; &#160; &#160; &#160; 


&#160; &#160; this.total =&#160; Math.floor&#40;evt.duration&#41;;


&#160; &#160; _model.VIDEO_INFO = evt.keyframes;


&#160; &#160; trace&#40;"总时长："+this._total&#41;;


&#125; 






其中evt.keyframes即位flv视频的关键帧信息，而判断flv视频文件是否有关键帧信息，则可以通过evt.hasKeyframes来判断，该属性返回值为true和false。而evt.keyframes对象中包含两个属性信息filepositions和times，其中filepositions是关键帧信息数组，times是相应关键帧对应的时间，下面是我获取某视频中关键帧信息样例：
evt.keyframes对象中times子对象的数据，标识关键帧对应的播放时间：

0,0,5.533,11.533,16.067,21.8,24.067,26.133,30,32.267,37.6,43.267,45.133,47.267,51.867,53.733,57.4,59.867,63.867,67.8,70.667,74.133,76.467,80,82.4,85.333,90.133,96.133,102.133,105.133,111.133,117.133,122.267,124.8,130.8,135.8,139.2,142.2,148.2,150,153.533,159.533,163.067,165.4,169.267,171.933,177.933,183.933,187.733,193.733,197.667,200.6,203.133,206.067,209.133,215.133,217.6,220.067,222.4,228.4,234.4,240.4,242.867,244.733,247.067,250.8,254.533,260.533,264.067,268.067,269.867,272,274.4,277.467,281.067,284.067,286.6,290.8,294.067,297.4,299.067,302.6,305.2,308.667,311.667,313.533,319.533,325.533,328.8,331.467,335.333,338,343,346.533,350.067,352.533,355.4,358.067,360.8,362.8,367.267,371.467,374.267,375.933,377.733,380.733,383.933,387.933,393.933,399.933,403.867,409.267,414.867,418.4

evt.keyframes对象中filepositions子对象的数据，标识关键帧，即我们上面所说的flv?start=xxxx中的xxxx的数据，如果xxxx的数字不再下面获取的flv关键帧中，则返回的数据文件格式错误，无法播放：

2650,2734,179170,362040,502095,687217,747251,813770,931890,1015804,1174764,1356682,1411927,1508559,1634406,1712758,1837296,1924593,2078091,2164183,2226333,2337820,2377968,2476248,2554368,2664586,2768775,2894230,3035847,3130652,3348618,3571268,3766343,3849311,4044788,4188396,4300083,4392539,4577497,4624653,4734492,4871226,4949224,5000486,5195382,5288821,5472473,5662645,5791675,5947651,6053179,6200560,6266445,6338100,6451014,6605875,6709343,6824559,6901223,7052468,7234868,7411185,7483760,7544164,7626147,7762197,7881221,8047468,8171763,8276937,8355123,8421664,8490698,8584352,8709950,8784877,8859630,8989008,9080175,9179022,9238318,9360639,9423169,9531208,9654510,9680621,9846348,10034265,10144692,10220895,10334161,10412023,10588244,10719901,10814462,10934765,10997771,11118320,11218603,11255080,11381747,11497686,11628573,11673477,11733196,11814608,11884327,11981067,12107692,12284393,12425526,12623196,12811502,12928943

有了这些关键帧信息，就可以再移动进度条时根据比例位置计算出该点最近的时间区间，然后获取相应关键帧，此时想要实现视频跳转播放用的就不是NetStream.seek这个方法了，而是NetStream.play(url？start=2650)这样的方式实现
]]></description>
			<content:encoded><![CDATA[<p>为了升级之前开发播放器功能，想要实现视频制定时间跳转播放而又不通过流媒体服务器，所以开始研究NGINX与flash的交互，但是国内相关的博客都是转来转去，搜出来的几乎全是一样，百分之百的教你怎么配置NGINX服务器和使用JW FLV Player，而对于AS3中怎样使用却无人提及，加之JW player的开源代码看起来比较恶心，所以决定研究flashAPI帮助文档和flv视频信息，最后后得到如下方法和心得，原理很简单：<br />
<a href="http://compig.net/blog/wp-content/uploads/2010/08/播放器2.jpg"><img src="http://compig.net/blog/wp-content/uploads/2010/08/播放器2.jpg" alt="" title="播放器" width="439" height="366" class="aligncenter size-full wp-image-294" /></a><br />
传统的AS3播放flv的教程中对于快进的使用时NetStream.seek(播放时间)这个方法来实现的，其中参数里的播放时间需要在缓冲数据之内，而NGINX号称支持关键帧开始播放，实际的原理就是HTTP访问时，服务器返回的flv文件时从该关键帧开始加上相应的头部信息来实现的。这里我们要注意？start=xxxx中的xxxx一定要是flv视频信息中存在的帧才行，AS3中怎样获取flv视频的关键帧呢？<br />
<span id="more-286"></span><br />
比如</p>
<div class="igBar"><span id="lactionscript-3"><a href="#" onclick="javascript:showPlainTxt('actionscript-3'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ACTIONSCRIPT:</span>
<div id="actionscript-3">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">this</span>._nc = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">NetConnection</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">this</span>._nc.<span style="color: #0066CC;">connect</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">this</span>._ns = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">NetStream</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>._nc<span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> client:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Object</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">client.<span style="color: #006600;">onMetaData</span> = onMetaData;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">this</span>._ns.<span style="color: #006600;">client</span> = client; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
这段代码中返回onMetaData的方法中可以获取</p>
<div class="igBar"><span id="lactionscript-4"><a href="#" onclick="javascript:showPlainTxt('actionscript-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ACTIONSCRIPT:</span>
<div id="actionscript-4">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">/**</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">* 获取视频信息</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">* @param&nbsp; &nbsp; evt</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">*/</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onMetaData<span style="color: #66cc66;">&#40;</span>evt:<span style="color: #0066CC;">Object</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0066CC;">this</span>.<span style="color: #006600;">total</span> =&nbsp; <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">floor</span><span style="color: #66cc66;">&#40;</span>evt.<span style="color: #0066CC;">duration</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; _model.<span style="color: #006600;">VIDEO_INFO</span> = evt.<span style="color: #006600;">keyframes</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"总时长："</span>+<span style="color: #0066CC;">this</span>._total<span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
其中evt.keyframes即位flv视频的关键帧信息，而判断flv视频文件是否有关键帧信息，则可以通过evt.hasKeyframes来判断，该属性返回值为true和false。而evt.keyframes对象中包含两个属性信息filepositions和times，其中filepositions是关键帧信息数组，times是相应关键帧对应的时间，下面是我获取某视频中关键帧信息样例：<br />
evt.keyframes对象中times子对象的数据，标识关键帧对应的播放时间：<br />
<code><br />
0,0,5.533,11.533,16.067,21.8,24.067,26.133,30,32.267,37.6,43.267,45.133,47.267,51.867,53.733,57.4,59.867,63.867,67.8,70.667,74.133,76.467,80,82.4,85.333,90.133,96.133,102.133,105.133,111.133,117.133,122.267,124.8,130.8,135.8,139.2,142.2,148.2,150,153.533,159.533,163.067,165.4,169.267,171.933,177.933,183.933,187.733,193.733,197.667,200.6,203.133,206.067,209.133,215.133,217.6,220.067,222.4,228.4,234.4,240.4,242.867,244.733,247.067,250.8,254.533,260.533,264.067,268.067,269.867,272,274.4,277.467,281.067,284.067,286.6,290.8,294.067,297.4,299.067,302.6,305.2,308.667,311.667,313.533,319.533,325.533,328.8,331.467,335.333,338,343,346.533,350.067,352.533,355.4,358.067,360.8,362.8,367.267,371.467,374.267,375.933,377.733,380.733,383.933,387.933,393.933,399.933,403.867,409.267,414.867,418.4<br />
</code><br />
evt.keyframes对象中filepositions子对象的数据，标识关键帧，即我们上面所说的flv?start=xxxx中的xxxx的数据，如果xxxx的数字不再下面获取的flv关键帧中，则返回的数据文件格式错误，无法播放：<br />
<code><br />
2650,2734,179170,362040,502095,687217,747251,813770,931890,1015804,1174764,1356682,1411927,1508559,1634406,1712758,1837296,1924593,2078091,2164183,2226333,2337820,2377968,2476248,2554368,2664586,2768775,2894230,3035847,3130652,3348618,3571268,3766343,3849311,4044788,4188396,4300083,4392539,4577497,4624653,4734492,4871226,4949224,5000486,5195382,5288821,5472473,5662645,5791675,5947651,6053179,6200560,6266445,6338100,6451014,6605875,6709343,6824559,6901223,7052468,7234868,7411185,7483760,7544164,7626147,7762197,7881221,8047468,8171763,8276937,8355123,8421664,8490698,8584352,8709950,8784877,8859630,8989008,9080175,9179022,9238318,9360639,9423169,9531208,9654510,9680621,9846348,10034265,10144692,10220895,10334161,10412023,10588244,10719901,10814462,10934765,10997771,11118320,11218603,11255080,11381747,11497686,11628573,11673477,11733196,11814608,11884327,11981067,12107692,12284393,12425526,12623196,12811502,12928943<br />
</code><br />
有了这些关键帧信息，就可以再移动进度条时根据比例位置计算出该点最近的时间区间，然后获取相应关键帧，此时想要实现视频跳转播放用的就不是NetStream.seek这个方法了，而是NetStream.play(url？start=2650)这样的方式实现</p>
]]></content:encoded>
			<wfw:commentRss>http://compig.net/blog/?feed=rss2&amp;p=286</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于引用flash时页面花白的一种情况</title>
		<link>http://compig.net/blog/?p=280</link>
		<comments>http://compig.net/blog/?p=280#comments</comments>
		<pubDate>Mon, 02 Aug 2010 10:03:59 +0000</pubDate>
		<dc:creator>guangmin</dc:creator>
				<category><![CDATA[Flex/Flash RIA]]></category>

		<guid isPermaLink="false">http://compig.net/blog/?p=280</guid>
		<description><![CDATA[好久没来写日志了，因为最近工作比较忙，经常加班。
篮球电视台的播放器改了又改，终于进入测试阶段了，今天同事发现了一个很诡异的问题，在IE下引用swf文件的页面开了“白窗”，页面没有报错。
从引用flash的URL入手，判断swf文件是否存在：
http://vod.nba.tom.com/TomPlayer_tv4.0.swf?recommend=http://devtv11.tom.com/html/view.html
事实证明http://vod.nba.tom.com/TomPlayer_tv4.0.swf这个文件时存在的，于是自己假设IE将整个URL包括后面的recommend参数一并作为一个html页面处理了，将这个URL完整输入浏览器果然是白的。这样问题就找出来了，IE解析文件时靠文件后缀名的，这样如果参数中带有相应“混淆视听”的后缀名结尾，这样便会引发浏览器的“误会”
解决方法相对比较容易：
1.修改参数格式，尽量避免.html这种后缀的出现；
2.在敏感后缀后面加一个无所谓的参数比如“&#038;t=ac”，这样这个url变成：
http://vod.nba.tom.com/TomPlayer_tv4.0.swf?recommend=http://devtv11.tom.com/html/view.html&#038;t=ac
这样IE下flash白窗的问题就解决了
]]></description>
			<content:encoded><![CDATA[<p>好久没来写日志了，因为最近工作比较忙，经常加班。<br />
篮球电视台的播放器改了又改，终于进入测试阶段了，今天同事发现了一个很诡异的问题，在IE下引用swf文件的页面开了“白窗”，页面没有报错。<br />
从引用flash的URL入手，判断swf文件是否存在：</p>
<p>http://vod.nba.tom.com/TomPlayer_tv4.0.swf?recommend=http://devtv11.tom.com/html/view.html</p>
<p>事实证明http://vod.nba.tom.com/TomPlayer_tv4.0.swf这个文件时存在的，于是自己假设IE将整个URL包括后面的recommend参数一并作为一个html页面处理了，将这个URL完整输入浏览器果然是白的。这样问题就找出来了，IE解析文件时靠文件后缀名的，这样如果参数中带有相应“混淆视听”的后缀名结尾，这样便会引发浏览器的“误会”<br />
解决方法相对比较容易：<br />
1.修改参数格式，尽量避免.html这种后缀的出现；<br />
2.在敏感后缀后面加一个无所谓的参数比如“&#038;t=ac”，这样这个url变成：</p>
<p>http://vod.nba.tom.com/TomPlayer_tv4.0.swf?recommend=http://devtv11.tom.com/html/view.html&#038;t=ac</p>
<p>这样IE下flash白窗的问题就解决了</p>
]]></content:encoded>
			<wfw:commentRss>http://compig.net/blog/?feed=rss2&amp;p=280</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>毕业一周年同学聚会小记</title>
		<link>http://compig.net/blog/?p=254</link>
		<comments>http://compig.net/blog/?p=254#comments</comments>
		<pubDate>Sat, 03 Jul 2010 19:30:17 +0000</pubDate>
		<dc:creator>guangmin</dc:creator>
				<category><![CDATA[乐在其中]]></category>

		<guid isPermaLink="false">http://compig.net/blog/?p=254</guid>
		<description><![CDATA[思来想去，还是引用姜昆老师相声里面的一句台词：“时光如水，生命如歌”来做个开头吧。人生大概也就70个一年，而不再青葱的我们已然迷迷糊糊的走过了23个岁月，感慨、惶恐......
话说这次的同学聚会来了11个，想想也算不错了，毕竟大家都还有很多事情要做，能在百忙中参加这个活动着实不易。自去年散伙后，很多同学都是一整年杳无音信。大家觥筹交错间问及彼此一年的生活也与原来大学里的烂漫纯真有了本质的差异，除了一沉不变的扯淡之外，更多的话题集中在了贷款和房价上面，听上去总感觉很压抑。晓涛和李家最后得出了个“想在北京结婚至少要80万的”结论，这让出身平庸的自己着实的暴汗了一次。想来这一年自己应该还算努力吧，经受住了各种各样的考验，却也没有些许升职加薪的迹象，如果这样下去不吃不喝也要10年才能搞定这笔钱，再想到CPI这种头疼的事情，真的是见不到什么希望了，好在老子还是光棍儿，哥怕谁？
突然心底在矛盾：什么算成功呢？豪宅两三处，妻女各一枚？现在的社会因为没有了战场上的英雄，而把男人的能力绑定在一个“钱”字身上，这也是不无道理。
大家都有自己的生活和未来：HY在“18M”实习，还有一年半才毕业；曾MM刚刚因为某某原因辞职做了“家庭主妇”；公公年前离职单干，过着真正的WAH的潇洒生活；乔三2次考研成功去了中科院，以后会继续读博吧；邓总刚刚跳了槽转而写C，有钱途；喜达的JQuery、Ext也日臻成熟，有了自己的小九九；晓涛这个“银行家”在忙碌之余也想着出国看看老婆，计划着买房结婚；“地产商”李家依旧盘算着投资型住房的事情，三句话不离本行；大神2次考研又多了两年时间来问问自己想要什么；煤老板刚刚失恋，盘算着先养活自己，然后什么时候买个大奔开开；我自己嘛......
空腹喝酒挺难受的，半斤金六福下肚，有点顶不住，装醉拖过一劫。坐849回家的路上，一幅幅过去和未来的画面从脑中不断的闪过，感伤抑或是无奈都只能藏在心底，困难要克服，没有退路，只能往前走了。也许下个一年，情况会明朗些，至少在这个过程中，自己仍然要充实的生存着。
一点小小的感叹，最后祝所有的同学在学业、事业以及情感上都尽快达成自己的目标
]]></description>
			<content:encoded><![CDATA[<p>思来想去，还是引用姜昆老师相声里面的一句台词：“时光如水，生命如歌”来做个开头吧。人生大概也就70个一年，而不再青葱的我们已然迷迷糊糊的走过了23个岁月，感慨、惶恐......<br />
话说这次的同学聚会来了11个，想想也算不错了，毕竟大家都还有很多事情要做，能在百忙中参加这个活动着实不易。自去年散伙后，很多同学都是一整年杳无音信。大家觥筹交错间问及彼此一年的生活也与原来大学里的烂漫纯真有了本质的差异，除了一沉不变的扯淡之外，更多的话题集中在了贷款和房价上面，听上去总感觉很压抑。晓涛和李家最后得出了个“想在北京结婚至少要80万的”结论，这让出身平庸的自己着实的暴汗了一次。想来这一年自己应该还算努力吧，经受住了各种各样的考验，却也没有些许升职加薪的迹象，如果这样下去不吃不喝也要10年才能搞定这笔钱，再想到CPI这种头疼的事情，真的是见不到什么希望了，好在老子还是光棍儿，哥怕谁？<br />
突然心底在矛盾：什么算成功呢？豪宅两三处，妻女各一枚？现在的社会因为没有了战场上的英雄，而把男人的能力绑定在一个“钱”字身上，这也是不无道理。<br />
大家都有自己的生活和未来：HY在“18M”实习，还有一年半才毕业；曾MM刚刚因为某某原因辞职做了“家庭主妇”；公公年前离职单干，过着真正的WAH的潇洒生活；乔三2次考研成功去了中科院，以后会继续读博吧；邓总刚刚跳了槽转而写C，有钱途；喜达的JQuery、Ext也日臻成熟，有了自己的小九九；晓涛这个“银行家”在忙碌之余也想着出国看看老婆，计划着买房结婚；“地产商”李家依旧盘算着投资型住房的事情，三句话不离本行；大神2次考研又多了两年时间来问问自己想要什么；煤老板刚刚失恋，盘算着先养活自己，然后什么时候买个大奔开开；我自己嘛......<br />
空腹喝酒挺难受的，半斤金六福下肚，有点顶不住，装醉拖过一劫。坐849回家的路上，一幅幅过去和未来的画面从脑中不断的闪过，感伤抑或是无奈都只能藏在心底，困难要克服，没有退路，只能往前走了。也许下个一年，情况会明朗些，至少在这个过程中，自己仍然要充实的生存着。<br />
一点小小的感叹，最后祝所有的同学在学业、事业以及情感上都尽快达成自己的目标</p>
]]></content:encoded>
			<wfw:commentRss>http://compig.net/blog/?feed=rss2&amp;p=254</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>我的游戏开发日记7</title>
		<link>http://compig.net/blog/?p=248</link>
		<comments>http://compig.net/blog/?p=248#comments</comments>
		<pubDate>Tue, 29 Jun 2010 07:03:05 +0000</pubDate>
		<dc:creator>guangmin</dc:creator>
				<category><![CDATA[游戏设计]]></category>

		<guid isPermaLink="false">http://compig.net/blog/?p=248</guid>
		<description><![CDATA[很久没写开发日记了，原因是一个月前被公司的其他项目组拉过去做视频播放器，本来没有多少工作量，但是变态的需求压得人喘不过气来，最无奈的一句话就是：别人有的广告形式我们也一定要有。
之前的游戏项目，也因为人员的频繁变动以及其他项目工作的挤压，变得支离破碎。对于这个项目，可以这样说，自己的短期目标和职业前途都压在这里了。而公司一贯不重视的态度，使得在工作期间完成这它成了痴心妄想，所以自己必须要改变策略：用闲暇的时间搞定自己真正想要的游戏。
考虑了下，之前的游戏策划和素材UI自己都不满意，所以决定放弃，不予采用。而后自己将以《房间制大富翁》为题材，做一款游戏出来，好在原来的客户端框架还可以用，后面的服务器端也有稍许基础，也不算是白手起家。
后面的路还很漫长，自此立帖为证，过年之前必定弄出个所以然来。
]]></description>
			<content:encoded><![CDATA[<p>很久没写开发日记了，原因是一个月前被公司的其他项目组拉过去做视频播放器，本来没有多少工作量，但是变态的需求压得人喘不过气来，最无奈的一句话就是：别人有的广告形式我们也一定要有。<br />
之前的游戏项目，也因为人员的频繁变动以及其他项目工作的挤压，变得支离破碎。对于这个项目，可以这样说，自己的短期目标和职业前途都压在这里了。而公司一贯不重视的态度，使得在工作期间完成这它成了痴心妄想，所以自己必须要改变策略：用闲暇的时间搞定自己真正想要的游戏。<br />
考虑了下，之前的游戏策划和素材UI自己都不满意，所以决定放弃，不予采用。而后自己将以《房间制大富翁》为题材，做一款游戏出来，好在原来的客户端框架还可以用，后面的服务器端也有稍许基础，也不算是白手起家。<br />
后面的路还很漫长，自此立帖为证，过年之前必定弄出个所以然来。</p>
]]></content:encoded>
			<wfw:commentRss>http://compig.net/blog/?feed=rss2&amp;p=248</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我自随风舞，晴空万里蓝</title>
		<link>http://compig.net/blog/?p=242</link>
		<comments>http://compig.net/blog/?p=242#comments</comments>
		<pubDate>Sun, 27 Jun 2010 12:23:15 +0000</pubDate>
		<dc:creator>guangmin</dc:creator>
				<category><![CDATA[乐在其中]]></category>

		<guid isPermaLink="false">http://compig.net/blog/?p=242</guid>
		<description><![CDATA[“我自随风舞，晴空万里蓝”
一直追逐的那种心态正在慢慢的离自己远去，在这个钢筋混凝土筑起的监牢里，忽然意识到自己好像迷失了。前阵子一直上火，掉了一颗牙，也许是因为工作和生活的压力太大了。仔细想想自己在这毕业的一年里，勤勤恳恳的工作，但是却还没有升职和加薪的势头；虽然项目做了不少，但是却没有一个满意的作品。跟同龄人的共同语言也慢慢的减少，明明只有23岁却俨然已经老气横秋了，我不想这样下去了。
今天又和老姐在网上聊天了，现在很害怕和她聊，因为每次聊完心里都会不好受。明明自己是受害者，却要每每聆听她的无辜和无奈。最近老是做同一个梦，每天晚上被一个女鬼咬，惊醒的时候发现原来是自己的腿在疼。这种锥心的感觉已经持续8年了，一直在挣扎着，难道真的是我上辈子作孽太多么？很想对父母说：“不要再给我压力了，儿子承受能力有限，每天把事情憋在心里的感觉很难受”
最近又有几个同事离职了，有的去考研了，我在上下班的路上除了看书以外，也会经常愣神想想自己的前途。刚刚看了下天地会的招聘信息，高薪职位还是很多的，虽然现在拿下也不是什么难事，但是至少我希望在这边作出一些业绩来。如果没有得到一个地方的认可就离开，这不是COMPIG的作风。况且一个混乱的环境更适合自己的进步，要好好把握自己还算年轻的这段时间。再多的委屈和不甘我都可以承受，只要自己毕业前的计划还在按部就班的实施。
好难受，事情不能和父母说、不能和老姐说、更不能和朋友说，每天自言自语的感觉好难受，什么时候才能体会到“我自随风舞，清空万里蓝”的清爽？
]]></description>
			<content:encoded><![CDATA[<p>“我自随风舞，晴空万里蓝”<br />
一直追逐的那种心态正在慢慢的离自己远去，在这个钢筋混凝土筑起的监牢里，忽然意识到自己好像迷失了。前阵子一直上火，掉了一颗牙，也许是因为工作和生活的压力太大了。仔细想想自己在这毕业的一年里，勤勤恳恳的工作，但是却还没有升职和加薪的势头；虽然项目做了不少，但是却没有一个满意的作品。跟同龄人的共同语言也慢慢的减少，明明只有23岁却俨然已经老气横秋了，我不想这样下去了。<span id="more-242"></span><br />
今天又和老姐在网上聊天了，现在很害怕和她聊，因为每次聊完心里都会不好受。明明自己是受害者，却要每每聆听她的无辜和无奈。最近老是做同一个梦，每天晚上被一个女鬼咬，惊醒的时候发现原来是自己的腿在疼。这种锥心的感觉已经持续8年了，一直在挣扎着，难道真的是我上辈子作孽太多么？很想对父母说：“不要再给我压力了，儿子承受能力有限，每天把事情憋在心里的感觉很难受”<br />
最近又有几个同事离职了，有的去考研了，我在上下班的路上除了看书以外，也会经常愣神想想自己的前途。刚刚看了下天地会的招聘信息，高薪职位还是很多的，虽然现在拿下也不是什么难事，但是至少我希望在这边作出一些业绩来。如果没有得到一个地方的认可就离开，这不是COMPIG的作风。况且一个混乱的环境更适合自己的进步，要好好把握自己还算年轻的这段时间。再多的委屈和不甘我都可以承受，只要自己毕业前的计划还在按部就班的实施。<br />
好难受，事情不能和父母说、不能和老姐说、更不能和朋友说，每天自言自语的感觉好难受，什么时候才能体会到“我自随风舞，清空万里蓝”的清爽？</p>
]]></content:encoded>
			<wfw:commentRss>http://compig.net/blog/?feed=rss2&amp;p=242</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TOM新员工拓展</title>
		<link>http://compig.net/blog/?p=238</link>
		<comments>http://compig.net/blog/?p=238#comments</comments>
		<pubDate>Thu, 24 Jun 2010 08:37:19 +0000</pubDate>
		<dc:creator>guangmin</dc:creator>
				<category><![CDATA[乐在其中]]></category>

		<guid isPermaLink="false">http://compig.net/blog/?p=238</guid>
		<description><![CDATA[从入职第一天起，时不时的就听老员工讲起新员工拓展，言语之间流露出的那种留恋和回味的神情，让人不禁对这样一个看似普通的活到产生了无限的遐想。一转眼八个多月过去了，口味也吊得十足，日盼夜盼，终于盼到我去拓展了。


话说十个程序员九个宅，每天往返在城市两头，拥挤的人流、去拓展？那感觉真新鲜。经过了辗转的山路，下车就有烤羊的香味扑面而来，只可惜最后都没有尝到它的鲜美，实在是一种遗憾。两大车的人一下来，场面挺壮观的，但是参加拓展的人除了平时工作有过来往的，其他人都不太认识，顿时有种相当陌生的感觉从心里滋生。
人在职场混，自我介绍总是难免的，只是59个人一个个来，还真考验咱的记忆力，一趟走下来的最大收获是：“一个也没记住...”，好在后面还有大把的时间和机会慢慢认识。拓展分三队，我们的队伍有一个响亮的名字——大饼，通俗易懂，如果非要给他订个上纲上线的意义的话，我们可以瞬间拿出一大堆方案，实在是个好名字!晚上的兔子舞跳得实在难受，这也在警告我，好久没运动了......
第二天的项目以团队合作为主，最记忆犹新的莫过于过“电网”，毕竟我们组破了记录嘛！一个好的队长、相当有执行力的团队再加上没有什么分歧，做事情当然事半功倍。这里有些题外话，是自己在结束后想说但是没有说的：其实在这个项目里队内有我这个“病号”还是很有优势的，因为我不用过电网，还可以帮忙把最后一个“处男”抬过去，如果队里没有病号，最后一个该怎么过呢？其实还有一个更好的解决方案，估计大家都已经想过了。
下午的天很热，绕着水长城景区走很消耗体力，好在队里美女众多，动力十足，尤其是走“盲道”那段拉着MM的手感觉天都不那么热了......
一天的时间很快，结束的时候大家都意犹未尽，想想也是，大家都是年轻人，多出来一起玩玩，平时干工作也不至于那么“老气横秋”
PS：各个队在拓展后都有了Q群，商量下后续活动，下次一起出去玩应该不会太生分了吧？
]]></description>
			<content:encoded><![CDATA[<p>从入职第一天起，时不时的就听老员工讲起新员工拓展，言语之间流露出的那种留恋和回味的神情，让人不禁对这样一个看似普通的活到产生了无限的遐想。一转眼八个多月过去了，口味也吊得十足，日盼夜盼，终于盼到我去拓展了。<br />
<a href="http://compig.net/blog/wp-content/uploads/2010/06/QQ截图未命名2.jpg"><img src="http://compig.net/blog/wp-content/uploads/2010/06/QQ截图未命名2.jpg" alt="" title="QQ截图未命名" width="512" height="354" class="aligncenter size-full wp-image-239" /></a><br />
<span id="more-238"></span><br />
话说十个程序员九个宅，每天往返在城市两头，拥挤的人流、去拓展？那感觉真新鲜。经过了辗转的山路，下车就有烤羊的香味扑面而来，只可惜最后都没有尝到它的鲜美，实在是一种遗憾。两大车的人一下来，场面挺壮观的，但是参加拓展的人除了平时工作有过来往的，其他人都不太认识，顿时有种相当陌生的感觉从心里滋生。</p>
<p>人在职场混，自我介绍总是难免的，只是59个人一个个来，还真考验咱的记忆力，一趟走下来的最大收获是：“一个也没记住...”，好在后面还有大把的时间和机会慢慢认识。拓展分三队，我们的队伍有一个响亮的名字——大饼，通俗易懂，如果非要给他订个上纲上线的意义的话，我们可以瞬间拿出一大堆方案，实在是个好名字!晚上的兔子舞跳得实在难受，这也在警告我，好久没运动了......</p>
<p>第二天的项目以团队合作为主，最记忆犹新的莫过于过“电网”，毕竟我们组破了记录嘛！一个好的队长、相当有执行力的团队再加上没有什么分歧，做事情当然事半功倍。这里有些题外话，是自己在结束后想说但是没有说的：其实在这个项目里队内有我这个“病号”还是很有优势的，因为我不用过电网，还可以帮忙把最后一个“处男”抬过去，如果队里没有病号，最后一个该怎么过呢？其实还有一个更好的解决方案，估计大家都已经想过了。</p>
<p>下午的天很热，绕着水长城景区走很消耗体力，好在队里美女众多，动力十足，尤其是走“盲道”那段拉着MM的手感觉天都不那么热了......</p>
<p>一天的时间很快，结束的时候大家都意犹未尽，想想也是，大家都是年轻人，多出来一起玩玩，平时干工作也不至于那么“老气横秋”</p>
<p>PS：各个队在拓展后都有了Q群，商量下后续活动，下次一起出去玩应该不会太生分了吧？</p>
]]></content:encoded>
			<wfw:commentRss>http://compig.net/blog/?feed=rss2&amp;p=238</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>遨游中flash加载广告视频的问题</title>
		<link>http://compig.net/blog/?p=232</link>
		<comments>http://compig.net/blog/?p=232#comments</comments>
		<pubDate>Wed, 23 Jun 2010 06:13:09 +0000</pubDate>
		<dc:creator>guangmin</dc:creator>
				<category><![CDATA[Flex/Flash RIA]]></category>
		<category><![CDATA[计算机网络]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[广告]]></category>
		<category><![CDATA[过滤]]></category>
		<category><![CDATA[遨游]]></category>
		<category><![CDATA[错误]]></category>

		<guid isPermaLink="false">http://compig.net/blog/?p=232</guid>
		<description><![CDATA[公司要做一个flv视频播放器，所以把之前手头webgame的项目放下来，专心做这个项目。
对于flash程序的控制性，自己很有把握，开发的很顺利，不过在经过产品同事测试的时候，莫名的在遨游浏览器中出现很多bug。大家都知道flash程序基本上不存在浏览器兼容性的问题的。那问题到底出在哪呢?

用调试版的flashplayer来监控，发现在播放广告视频的时候会出现IO错误，这种错误的出现说明flash在加载广告flv文件的时候失败，在排除配置文件错误的情况下，我们很容易确认问题出在了加载这个过程中。
值得注意的是在自己搭建的测试服务器上，并没有这样的问题出现，后来无意中想到了遨游的一大杀器——广告过滤。好在遨游会在过滤过程中有日志，对比日志和错误的结果，发现果然问题出在了这里。7个广告素材中有6个被过滤掉了，对比素材成的文字和URL发现有这样一个问题“ad”，凡是URL中出现这两个字母的时候都会被过滤掉。
剩下的事情就是做实验来验证这个推断了，事实证明我的想法是正确的，在配置文件中修改了广告的目录，再在服务器上将广告素材位置移动到一个没有广告意思的目录名目录下，问题就解决了。
这里拿出来分享给大家，原以为遨游的过滤技术会很深，后来发现也只存在关键字和弹出程序的判断上，所以在未来程序开发中应尽量避免相应事件的发生。
]]></description>
			<content:encoded><![CDATA[<p>公司要做一个flv视频播放器，所以把之前手头webgame的项目放下来，专心做这个项目。<br />
对于flash程序的控制性，自己很有把握，开发的很顺利，不过在经过产品同事测试的时候，莫名的在遨游浏览器中出现很多bug。大家都知道flash程序基本上不存在浏览器兼容性的问题的。那问题到底出在哪呢?<br />
<a href="http://compig.net/blog/wp-content/uploads/2010/06/QQ截图未命名1.jpg"><img src="http://compig.net/blog/wp-content/uploads/2010/06/QQ截图未命名1.jpg" alt="" title="QQ截图未命名" width="464" height="465" class="aligncenter size-full wp-image-236" /></a><br />
用调试版的flashplayer来监控，发现在播放广告视频的时候会出现IO错误，这种错误的出现说明flash在加载广告flv文件的时候失败，在排除配置文件错误的情况下，我们很容易确认问题出在了加载这个过程中。<br />
值得注意的是在自己搭建的测试服务器上，并没有这样的问题出现，后来无意中想到了遨游的一大杀器——广告过滤。好在遨游会在过滤过程中有日志，对比日志和错误的结果，发现果然问题出在了这里。7个广告素材中有6个被过滤掉了，对比素材成的文字和URL发现有这样一个问题“ad”，凡是URL中出现这两个字母的时候都会被过滤掉。<br />
剩下的事情就是做实验来验证这个推断了，事实证明我的想法是正确的，在配置文件中修改了广告的目录，再在服务器上将广告素材位置移动到一个没有广告意思的目录名目录下，问题就解决了。<br />
这里拿出来分享给大家，原以为遨游的过滤技术会很深，后来发现也只存在关键字和弹出程序的判断上，所以在未来程序开发中应尽量避免相应事件的发生。</p>
]]></content:encoded>
			<wfw:commentRss>http://compig.net/blog/?feed=rss2&amp;p=232</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个回车引发的“血案”</title>
		<link>http://compig.net/blog/?p=208</link>
		<comments>http://compig.net/blog/?p=208#comments</comments>
		<pubDate>Wed, 09 Jun 2010 02:20:31 +0000</pubDate>
		<dc:creator>guangmin</dc:creator>
				<category><![CDATA[HTML/CSS/JS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[错误]]></category>

		<guid isPermaLink="false">http://compig.net/blog/?p=208</guid>
		<description><![CDATA[早上在公交车上，经理打来电话说是《竞猜》首页的题目没有调用出来，急忙跑到公司纠察原因。
由于前些日子对系统进行了彻底的优化，95%以上的静态文件放到了CDN，尽可能将数据库查询用缓存代替，性能提升不少，首页一块数据出问题只有两种可能，碎片语法错误或者生成碎片的数据调用规则出错。检查了打开首页看到有个刺眼的JS错误，用firedebug观察，果然出自出错的模块。将出错的碎片代码显示出来，发现自动生成的代码中有个url后面跟了个\n，这样JS的字符串赋值语句中多出了个换行，导致了这样一个bug的发生。
回头在生成程序中添加了换行符的过滤，更新了碎片，页面回复正常。

这个问题不大，之所以拿出来写篇日志，是因为自己一直的一个疑问:\r、\n和\r\n的区别，上网上搜了一下，说明如下：
在windows下，一个换行是   \r\n；
在UNIX下仅仅是一个\r；
在MAC上则是\r；
ASCII码的说法是这样的：
\n   换行符   (ASCII   10)
\r   回车   (ASCII   13) 
自己的开发中往往在这些细节中总是出现问题，不得不重视一下。
另外还有PHP中单引号和双引号的区别也研究了一下，自己在网上查到的简单总结：
1.双引号-其中的变量名会被变量值替代;
2.单引号-原封不动全部当成"字符串"输出;
3.单引号内的字串会被更快的处理和分配内存;
4.单引号支持\转义符,双引号支持的转义符多;
]]></description>
			<content:encoded><![CDATA[<p>早上在公交车上，经理打来电话说是《竞猜》首页的题目没有调用出来，急忙跑到公司纠察原因。<br />
由于前些日子对系统进行了彻底的优化，95%以上的静态文件放到了CDN，尽可能将数据库查询用缓存代替，性能提升不少，首页一块数据出问题只有两种可能，碎片语法错误或者生成碎片的数据调用规则出错。检查了打开首页看到有个刺眼的JS错误，用firedebug观察，果然出自出错的模块。将出错的碎片代码显示出来，发现自动生成的代码中有个url后面跟了个\n，这样JS的字符串赋值语句中多出了个换行，导致了这样一个bug的发生。<br />
回头在生成程序中添加了换行符的过滤，更新了碎片，页面回复正常。<br />
<span id="more-208"></span><br />
这个问题不大，之所以拿出来写篇日志，是因为自己一直的一个疑问:\r、\n和\r\n的区别，上网上搜了一下，说明如下：<br />
在windows下，一个换行是   \r\n；<br />
在UNIX下仅仅是一个\r；<br />
在MAC上则是\r；</p>
<p>ASCII码的说法是这样的：<br />
\n   换行符   (ASCII   10)<br />
\r   回车   (ASCII   13) </p>
<p>自己的开发中往往在这些细节中总是出现问题，不得不重视一下。<br />
另外还有PHP中单引号和双引号的区别也研究了一下，自己在网上查到的简单总结：<br />
1.双引号-其中的变量名会被变量值替代;<br />
2.单引号-原封不动全部当成"字符串"输出;<br />
3.单引号内的字串会被更快的处理和分配内存;<br />
4.单引号支持\转义符,双引号支持的转义符多;</p>
]]></content:encoded>
			<wfw:commentRss>http://compig.net/blog/?feed=rss2&amp;p=208</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
