<?xml version="1.0" encoding="GBK" ?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/">
 <channel>
  	  <title><![CDATA[玉树临风真情无限]]></title>
	  <link>http://liufabin66688.blog.163.com</link>
	  <description><![CDATA[计算机，文学 喜欢交朋友]]></description>
	  <language>zh-CN</language>
	  <pubDate>Fri, 16 May 2008 13:36:22 +0800</pubDate>
	  <lastBuildDate>Fri, 16 May 2008 13:36:22 +0800</lastBuildDate>
	  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
	  <generator><![CDATA[NetEase Space]]></generator>
	  <managingEditor><![CDATA[liufabin66688]]></managingEditor>
	  <webMaster><![CDATA[玉树临风]]></webMaster>
		  <ttl>120</ttl>
	  <image>
	  	<title><![CDATA[玉树临风真情无限]]></title>
	  	<url>http://ava.blog.163.com/photo/vdGC02PbGQbTip2UhY3W3A==/429249339484679637.jpg</url>
	  	<link>http://liufabin66688.blog.163.com</link>
	  </image>
  <item>
  	<title><![CDATA[地震]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200841304355216</link>
    <description><![CDATA[<div><P><U>1976年7月28日凌晨3时42分53.8秒</U>，中国河北省唐山市仍在沉睡。</P>
<P>这座河北最大的重工业城市，以占全国万分之一的面积和千分之一的人口创造了全国百分之一的产值，拥有中国最大的煤矿，可谓中国国民经济大厦最重要的支柱之一。然而，一秒钟之后——</P>
<P>里氏<U>7.8级</U>、震中烈度<U>11度</U>的强烈地震有如400枚广岛原子弹在距地面16公里处猛然爆炸！在地震中<U>242769人</U>丧生，<U>164851人</U>伤残，<U>100多万人</U>受伤。可计算的直接经济损失在30亿元以上。从唐山赴京的求救人员风驰电掣地赶到中南海，一见中央领导就哭着喊：“首长啊，唐山全平啦……100万人，至少有80万还被压着呐！”在场的人都哭了</P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200841304355216</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200841304355216</guid>
    <pubDate>Tue, 13 May 2008 12:43:55 +0800</pubDate>
    <dcterms:modified>2008-05-13T12:43:55+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[生活琐碎]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/1396854820084895718496</link>
    <description><![CDATA[<div>&nbsp;&nbsp;&nbsp; 更快一点，有可能就等上刚过的地铁，不在为他而懊悔刚才为什么我不在快一点呢。告诫自己，尽力。真的很忙的连写日志的时间都偶没有了</div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/1396854820084895718496</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/1396854820084895718496</guid>
    <pubDate>Thu, 8 May 2008 09:57:18 +0800</pubDate>
    <dcterms:modified>2008-05-08T10:00:50+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[老了？]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200832642939168</link>
    <description><![CDATA[<div>听歌不在喜欢听流行歌曲，都是选择 一些老的，去网吧发现都是，89，88 的，哎，真的老了啊，发现</div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200832642939168</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200832642939168</guid>
    <pubDate>Sat, 26 Apr 2008 16:29:39 +0800</pubDate>
    <dcterms:modified>2008-04-26T16:29:39+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[fck 的配置]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200832531258167</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em"><BR>FCKConfig.FontNames &nbsp;='\u5b8b\u4f53;\u6977\u4f53_GB2312;\u9ed1\u4f53;\u96b6\u4e66;Times New Roman;Arial' ;</P>
<P style="TEXT-INDENT: 2em">FCKConfig.FontSizes&nbsp;&nbsp; = '9/\u6700\u5c0f;10/\u8f83\u5c0f;12/\u4e2d\u7b49;14/\u8f83\u5927;16/\u6700\u5927&nbsp;&nbsp;&nbsp; ' ;</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">使用百度空间自己的编辑器的都知道它有个简单、全部功能切换功能<BR>想不想自己的编辑器也有这样的功能呢？<BR>跟我来吧~<BR><BR>说在前面：我修改的和百度的不太一样 百度是利用table分割(在toolbarset中表现为'/')，我的则用竖线('-')分割，比较喜欢简洁，因此是在一个table中利用不同td 的style属性来切换，适合单行功能显示，如需其他请自行修改~<BR>可以参考百度的js http://hi.baidu.com/fc/editor/js/fckeditorcode_gecko.js<BR>另：本文所做修改基于 <STRONG>fck 2.5 Beta(笔者所用为 Build 16848)</STRONG><BR><BR>修改开始~<BR>默认您的fckeditor置于fc目录下<BR><BR>我们先加一个单行所需全功能的toolbar<BR>打开 fc/fckconfig.js<BR>在114行左右 FCKConfig.ToolbarSets["Basic"] =... <BR>下面新加<BR>FCKConfig.ToolbarSets["Diy"] = [<BR>&nbsp;&nbsp;&nbsp; ['Bold','Italic','Underline','-','JustifyLeft','JustifyCenter','JustifyRight','-','Link','Unlink','Image','-','Smiley','-','FontName','FontSize','-','TextColor','-','BGColor','-','Source','Preview','About']<BR>] ;<BR>FCKConfig.AdvanceTrNum = 0;//默认无需修改<BR>FCKConfig.AdvanceTr = [4,5,6,7,12,13,15,19,20,23];<BR>//这里的数字就是toolbarsets["Diy"]数组中需要默认隐藏的按钮顺序，从1开始哦，比如<FONT color=#cc99ff>[4,5,6]</FONT>就是把<FONT color=#3366ff>'-','JustifyLeft','JustifyCenter'</FONT> 这三个隐藏了<BR><BR>下面修改两个js文件<BR>fc/editor/js/fckeditorcode_gecko.js<BR>这个都是压缩过的，找个好使点的编辑器打开吧~<BR>搜索 <FONT color=#ff0000>var i=0;i&lt;this.Items.length;i++ <FONT color=#808080><BR><FONT color=#000000>原来的函数是<BR></FONT></FONT></FONT><FONT color=#ff6600>for (var i=0;i&lt;this.Items.length;i++){this.Items[i].Create(C.insertCell(-1));};</FONT><BR>修改成<BR><FONT color=#0000ff>for (var i=0;i&lt;this.Items.length;i++){D=C.insertCell(-1);FCKConfig.AdvanceTrNum++;for(var x=0;x&lt;FCKConfig.AdvanceTr.length;x++){if(FCKConfig.AdvanceTr[x]==FCKConfig.AdvanceTrNum){D.setAttribute('advance',true);D.style.display='none';break;}}this.Items[i].Create(D);};<BR><BR><FONT color=#000000>fckeditorcode_ie.js 的修改相同<BR><BR>打开fc/editor/fckeditor.html<BR><BR>在 &lt;script&gt;标签中加入一个js函数<BR>function chg(){<BR>&nbsp;&nbsp;&nbsp; var d = document.getElementById("xToolbar").getElementsByTagName("td");<BR>&nbsp;&nbsp;&nbsp; for(i=0 ; i&lt;d.length; i++){<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(d[i].getAttribute("advance")){<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; d[i].style.display=(d[i].style.display=="none")?"":"none";<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; var div1 = document.getElementById("chgbtn1");<BR>&nbsp;&nbsp;&nbsp; var div2 = document.getElementById("chgbtn2");<BR>&nbsp;&nbsp;&nbsp; if(div1.style.display == "none"){<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; div1.style.display = "";<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; div2.style.display = "none";<BR>&nbsp;&nbsp;&nbsp; }else{<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; div1.style.display = "none";<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; div2.style.display = "";<BR>&nbsp;&nbsp;&nbsp; }<BR><BR>}<BR><BR>然后找到 &lt;td id="xToolbar" class="TB_ToolbarSet"&gt;&lt;/td&gt;<BR>下面加入<BR>&lt;td align="right" class="TB_ToolbarSet" width="60px" valign="bottom"&gt;&amp;nbsp;&lt;a href="javascript:void(0);" onclick="chg();" style="font-size:12px;"&gt;&lt;span id="chgbtn1" style="display:none;"&gt;简单功能&lt;/span&gt;&lt;span id="chgbtn2" &gt;全部功能&lt;/span&gt;&lt;/a&gt;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/td&gt;<BR><BR>fck的修改就到此完成啦<BR>注意，如果<FONT color=#ff99cc>简单/全部功能</FONT>有乱码情况出现，可以尝试用记事本或其他编辑器把 </FONT></FONT><FONT color=#0000ff><FONT color=#000000>fckeditor.html 另存为utf-8格式，乱码一般就会解决</FONT></FONT><BR><FONT color=#0000ff><FONT color=#000000><BR>下面给个初始化的例子，我用的php，就是：<BR><BR>require_once('/fc/fckeditor.php');<BR>$BasePath = "/fc/";<BR>$oFCKeditor = new FCKeditor('content');<BR>$oFCKeditor-&gt;BasePath = $BasePath;<BR>...<BR>$oFCKeditor-&gt;ToolbarSet = 'Diy';<BR>....<BR><BR>指定toolbar用刚才添加的Diy就可以了<BR><BR>这样就达到和百度一样的切换功能啦，默认是简洁模式，点击全部功能就会出现所有按钮。<BR><BR>再次赞一下fckeditor，新版2.5已经支持opera9.5以上版本了，相当不错<BR><BR><BR>说一下百度发文/编辑页面关闭或者刷新时的提示<BR>这个就是使用了简单的 onbeforeunload 事件<BR>可以在发文/编辑的页面里面加入以下js函数<BR><BR>window.onbeforeunload = function(event){<BR>&nbsp;&nbsp;&nbsp; confirm_msg = "您的文章内容还没有进行保存！";<BR>&nbsp;&nbsp;&nbsp; event = event || window.event;<BR>&nbsp;&nbsp;&nbsp; event.returnValue = confirm_msg;<BR>}<BR>返回的消息可以自定义<BR>但是问题又出来了，有些时候并不想要这个提示，比如刷新的时候<BR>那么我们再加入个事件<BR></FONT></FONT><FONT color=#0000ff><FONT color=#000000>window.onkeydown = function (event){<BR>&nbsp;&nbsp;&nbsp; event = event || window.event;<BR>&nbsp;&nbsp;&nbsp; var currentKey = event.charCode||event.keyCode;<BR>&nbsp;&nbsp;&nbsp; //var eventSource = event.srcElement||event.target;<BR>&nbsp;&nbsp;&nbsp; //alert('currentKey: '+currentKey+'eventSource: '+eventSource.toString());<BR>&nbsp;&nbsp;&nbsp; if(currentKey=='116'){//F5<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; window.onbeforeunload = null;<BR>&nbsp;&nbsp;&nbsp; }<BR>}<BR>当有按键按下时触发此函数<BR>如果按下的为F5，那么就清除</FONT></FONT><FONT color=#0000ff><FONT color=#000000>window.onbeforeunload 事件，使得刷新页面时不提示<BR>其他的按键可以自己diy哦<BR><BR>我在ie7测试以上代码的时候，离开页面时出现提示，点击确定则继续执行，点击取消的话虽然操作被中止了，但是ie7抛出一个js错误，firefox无此问题，百思不得其解，所以暂时想了个办法，屏蔽掉它~<BR></FONT></FONT><FONT color=#0000ff><FONT color=#000000>window.onerror=function(){return true;};<BR>这样这个离开提示在firefox和ie下都很完美的工作啦，不过opera尚未支持哦<BR><BR>这样就基本达到了百度这样的功能切换和离开页面的提示效果~<BR>很简单吧~~<BR><BR><FONT color=#0000ff>后记</FONT>：发现一点，发文提交时也会提示，这岂不是很影响用户体验~<BR>那么接着修改一下：<BR><BR>将表单的submit提交改为button触发js提交<BR>例如以前的提交按钮为 <FONT color=#0000ff>&lt;input type="submit" name="submit" value="提 交" /&gt;</FONT><BR></FONT></FONT><FONT color=#0000ff><FONT color=#000000><FONT color=#ff0000>&lt;input type="button" name="submit" value="提 交" onclick="sub(this.form)" /&gt;</FONT><BR><BR>然后加入一个javascript函数用于提交<BR>function sub(f){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.onbeforeunload = null;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; f.submit();<BR>}<BR>这样提交时就不会有提示信息了<BR><BR>有的朋友可能会有问题了：如果我需要做表单检查怎么办？在form标签中用的是 onsubmit="return check(this)" 来做表单的js验证<BR><BR>比如check函数为<BR>function check(f){<BR>&nbsp;&nbsp;&nbsp; if(f.title.value=='' || f.content.value==''){<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; alert('请填写完整！');<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; return true;<BR>}<BR>那么修改一下，在from标签中去掉 </FONT></FONT><FONT color=#0000ff><FONT color=#000000>onsubmit="return check(this)" 这个<BR>然后把刚才的提交函数修改一下，就OK了<BR></FONT></FONT><FONT color=#0000ff><FONT color=#000000><BR>function sub(f){<BR>&nbsp;&nbsp;&nbsp; if(check(f)){<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; window.onbeforeunload = null;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; f.submit();<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; return false;</FONT></FONT></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">[原创]如何在FCKeditor 2.6中添加插入视频和音频功能</P>
<P style="TEXT-INDENT: 2em">FCKeditor 是现在用的最多的可视编辑器，乐乎也是使用了该编辑器，应大家的要求，添加了插入视频和音频的功能，因为2.6版的修改可能和其他版本不一样，所以我把修改的地方列举出来，格式我是看到网上有位同志的格式很好，照抄的，内容已经修改</P>
<P style="TEXT-INDENT: 2em">修改前注意备份文件，以免造成不必要的麻烦。</P>
<P style="TEXT-INDENT: 2em">一、分别打开:editor/js/fckeditorcode_ie.js和/editor/js/fckeditorcode_gecko.js</P>
<P style="TEXT-INDENT: 2em">找到程序代码</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=6 width="95%" align=center border=0>
<TBODY>
<TR>
<TD bgColor=#fdfddf>以下是代码片段：
<P></P>
<P style="TEXT-INDENT: 2em">||/\.swf($|#|\?)/i.test(A.src) </P></TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">这段代码的主要用来判断后缀名，如果后缀名不是swf则返回，把它替换为:</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=6 width="95%" align=center border=0>
<TBODY>
<TR>
<TD bgColor=#fdfddf>
<P></P>
<P style="TEXT-INDENT: 2em">以下是代码片段：</P>
<P style="TEXT-INDENT: 2em">||/\.swf($|#|\?)/i.test(A.src)||/\.mpg($|#|\?)/i.test(A.src)||/\.asf($|#|\?)/i.test(A.src)||/\.wma($|#|\?)/i.test(A.src)</P>
<P style="TEXT-INDENT: 2em">||/\.wmv($|#|\?)/i.test(A.src)||/\.avi($|#|\?)/i.test(A.src)||/\.mov($|#|\?)/i.test(A.src)||/\.mp3($|#|\?)/i.test(A.src)</P>
<P style="TEXT-INDENT: 2em">||/\.rmvb($|#|\?)/i.test(A.src)||/\.mid($|#|\?)/i.test(A.src)</P></TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">文件格式可以根据情况来修改，但是注意要和其他的几个地方吻合</P>
<P style="TEXT-INDENT: 2em">二、打开/editor/dialog/fck_flash/fck_flash.js</P>
<P style="TEXT-INDENT: 2em">1、增加程序代码，这段代码用来判断后缀名</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=6 width="95%" align=center border=0>
<TBODY>
<TR>
<TD bgColor=#fdfddf>以下是代码片段：
<P></P>
<P style="TEXT-INDENT: 2em">function WinPlayer(url){</P>
<P style="TEXT-INDENT: 2em">var r, re;</P>
<P style="TEXT-INDENT: 2em">re = /.(avi|wmv|asf|wma|mid|mp3|mpg)$/i;</P>
<P style="TEXT-INDENT: 2em">r = url.match(re);</P>
<P style="TEXT-INDENT: 2em">return r;</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">function RealPlayer(url){</P>
<P style="TEXT-INDENT: 2em">var r, re;</P>
<P style="TEXT-INDENT: 2em">re = /.(.rm|.ra|.rmvb|ram)$/i;</P>
<P style="TEXT-INDENT: 2em">r = url.match(re);</P>
<P style="TEXT-INDENT: 2em">return r;</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">function QuickTime(url){</P>
<P style="TEXT-INDENT: 2em">var r, re;</P>
<P style="TEXT-INDENT: 2em">re = /.(mov|qt)$/i;</P>
<P style="TEXT-INDENT: 2em">r = url.match(re);</P>
<P style="TEXT-INDENT: 2em">return r;</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">function FlashPlayer(url){</P>
<P style="TEXT-INDENT: 2em">var r, re;</P>
<P style="TEXT-INDENT: 2em">re = /.swf$/i;</P>
<P style="TEXT-INDENT: 2em">r = url.match(re);</P>
<P style="TEXT-INDENT: 2em">return r;</P>
<P style="TEXT-INDENT: 2em">}</P></TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">2、替换程序代码，这段代码是在UpdatePreview中用来添加type属性</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=6 width="95%" align=center border=0>
<TBODY>
<TR>
<TD bgColor=#fdfddf>以下是代码片段：
<P></P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'type', 'application/x-shockwave-flash' ) ;</P></TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">为</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=6 width="95%" align=center border=0>
<TBODY>
<TR>
<TD bgColor=#fdfddf>以下是代码片段：
<P></P>
<P style="TEXT-INDENT: 2em">if(WinPlayer(GetE('txtUrl').value)!=null){ </P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'type', 'application/x-mplayer2' ) ; </P>
<P style="TEXT-INDENT: 2em">} </P>
<P style="TEXT-INDENT: 2em">if(RealPlayer(GetE('txtUrl').value)!=null){ </P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'type', 'audio/x-pn-realaudio-plugin' ) ; </P>
<P style="TEXT-INDENT: 2em">} </P>
<P style="TEXT-INDENT: 2em">if(QuickTime(GetE('txtUrl').value)!=null){ </P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'type', 'application/video/quicktime' ) ; </P>
<P style="TEXT-INDENT: 2em">} </P>
<P style="TEXT-INDENT: 2em">if(FlashPlayer(GetE('txtUrl').value)!=null){ </P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'type', 'application/x-shockwave-flash' ) ; </P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'pluginspage', 'http://www.macromedia.com/go/getflashplayer' ) ; </P>
<P style="TEXT-INDENT: 2em">}</P></TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">3、替换程序代码，这段代码是在UpdateEmbed中用来添加type属性</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=6 width="95%" align=center border=0>
<TBODY>
<TR>
<TD bgColor=#fdfddf>以下是代码片段：
<P></P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'type' , 'application/x-shockwave-flash' ) ;</P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'pluginspage' , 'http://www.macromedia.com/go/getflashplayer' ) ;</P></TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">为</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=6 width="95%" align=center border=0>
<TBODY>
<TR>
<TD bgColor=#fdfddf>以下是代码片段：
<P></P>
<P style="TEXT-INDENT: 2em">if(WinPlayer(GetE('txtUrl').value)!=null){</P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'type' , 'application/x-mplayer2' ) ; </P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'autostart', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">if(RealPlayer(GetE('txtUrl').value)!=null){</P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'type' , 'audio/x-pn-realaudio-plugin' ) ; </P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'autostart', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">if(QuickTime(GetE('txtUrl').value)!=null){</P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'type' , 'video/quicktime' ) ; </P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'autostart', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">if(FlashPlayer(GetE('txtUrl').value)!=null){</P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'type' , 'application/x-shockwave-flash' ) ;</P>
<P style="TEXT-INDENT: 2em">SetAttribute( e, 'pluginspage' , 'http://www.macromedia.com/go/getflashplayer' ) ;</P>
<P style="TEXT-INDENT: 2em">}</P></TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">三、打开/fckconfig.js，该文件为配置文件</P>
<P style="TEXT-INDENT: 2em">替换程序代码,这个是在上传文件的时候检查后缀名</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=6 width="95%" align=center border=0>
<TBODY>
<TR>
<TD bgColor=#fdfddf>以下是代码片段：
<P></P>
<P style="TEXT-INDENT: 2em">FCKConfig.FlashUploadAllowedExtensions = ".(swf)$" ; // empty for all</P></TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">为</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=6 width="95%" align=center border=0>
<TBODY>
<TR>
<TD bgColor=#fdfddf>以下是代码片段：
<P></P>
<P style="TEXT-INDENT: 2em">FCKConfig.FlashUploadAllowedExtensions = ".(swf|fla|mpg|asf|wma|wmv|avi|mov|mp3|rmvb|mid)$" ; // empty for all</P></TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">三、打开/editor/lang/zh-cn.js 文件，该部分为语言文件，Flash替换掉就可以了</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">然后整体修改完成，现在lehu已经支持上传视频和音频文件，不过注意的是，如果视频文件太大，还是可能出现不能播放的情况</P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200832531258167</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200832531258167</guid>
    <pubDate>Fri, 25 Apr 2008 15:12:58 +0800</pubDate>
    <dcterms:modified>2008-04-25T15:12:58+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[sns的几篇文章]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200831102530672</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">××<A href="http://hainei.com/blog?a=read&amp;r%5B0%5D=115158&amp;r%5B1%5D=101531">思考：为什么BBS没有商业价值？</A></P>
<P style="TEXT-INDENT: 2em">××<A href="http://hainei.com/blog?a=read&amp;r%5B0%5D=114415&amp;r%5B1%5D=121328">对人的描述是SNS数据价值的基础</A></P>
<P style="TEXT-INDENT: 2em">××<A href="http://hainei.com/blog?a=read&amp;r%5B0%5D=114533&amp;r%5B1%5D=126439">是时候开发 APP，满足海内用户的特殊应用了？是的！</A></P>
<P style="TEXT-INDENT: 2em"><A href="http://www.cyzone.cn/forum/27489_1_1.aspx">http://www.cyzone.cn/forum/27489_1_1.aspx</A>
</P><P style="TEXT-INDENT: 2em">&nbsp;昨天海内好友聚会，欢迎罗娜同学，围绕海内讨论的很热烈，也见到了王兴，中间问了他有没有考虑过针对用户加TAG。<BR><BR>但是没说太清楚，现在想过之后，补充一下。<BR><BR>SNS把场子开了，让用户玩起来，但每个用户在玩的过程中，其实都在无意中不断的为SNS积累数据，这些数据可能现在就有用，也可能需要到了门槛之后才能用起来。这些数据和承载数据的用户一起，其实是SNS最重要的资产。<BR><BR>更多的吸引用户，让用户活跃起来，留下更多痕迹，然后积累更多数据，应该是SNS的主要任务吧。<BR><BR>如何有效地积累、管理和利用这些数据，是SNS能有多大成功的关键。<BR><BR>要哪些数据呢？<BR><BR>1、对用户个人特性描述的数据，如类型、个性、爱好、背景等；<BR>2、用户行为和行为的对象数据；<BR>3、用户的关系数据，如关系的广度、层次、频度差异、相互关系（单向还是双向）、传播路径等。<BR>也许还有其他的......<BR><BR>这些数据是互相关联的，如同类型和紧密型好友的推荐更有价值等，如从哪里开始传播更有效等等。<BR><BR>对用户TAG其实要收集的是第一类数据，原本大多是从行为和关系间接推出对用户个人的描述的，但如果能直接得到这种数据，会对SNS和用户有很大的帮助。当然如何做，如何不引起用户的不适，使需要探讨的问题。<BR><BR>这些数据用在哪里呢？<BR>1、推荐和寻找人；<BR>2、推荐和筛选内容；<BR>3、推荐商品和服务；<BR>4、广告定投。<BR>也许还有其他的......<BR><BR>推荐/过滤，以及未来SNS的盈利前景都依赖于积累的数据量和数据挖掘的质量。<BR><BR><BR>----------------------------------------Update-------------------------------------------------<BR><BR>如果进一步说明确点的话，个人认为“个人的全面描述”其实就是SNS最重要的产品。<BR><BR>(希望不要进一步引起隐私权的讨论：）)<BR><BR>在SNS的数据库中，最重要的一张表之一就应该是“个人的全面描述表”。<BR><BR>这个表中涵盖了用户个人信息的不同维度，如个人基本信息、个人所归类的原型、活动频度、在关系图中的位置/重要性/作用、感兴趣的事物（内容、物品和服务等行为的指向物）等等。<BR><BR>SNS需要定期（比如说1个月）在积累的原始数据基础上，挖据出与个人描述相关的信息，更新到“个人的全面描述表”中去，而不是在需要匹配的时候再历遍数据库。<BR><BR>SNS需要定期的审视表格中的薄弱环节，用引入新的APP，加强对不活跃用户（尤其是不活跃的节点）的推送，让用户动起来，从用户的活动痕迹中去挖据数据。<BR><BR>从这个意义上讲，提供平台、引入APP、机器推荐等都是生产“个人描述”的中间环节。<BR><BR>SNS的商业价值基本都来自于这张表格的质量。如果哪一天海内也和51一样有1亿用户，而且海内能让大家都活跃起来，我们可以想象一下海内的商业价值比51大多少倍？！ <BR><BR>也许在建站初期，SNS就需要对“个人描述”的建立，做一些规划</P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200831102530672</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200831102530672</guid>
    <pubDate>Tue, 1 Apr 2008 10:25:30 +0800</pubDate>
    <dcterms:modified>2008-04-01T10:25:30+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[php沉思录2]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200822095710573</link>
    <description><![CDATA[<div><P><STRONG>PME模型</STRONG> </P>
<P>在大规模的程序设计中，组件（component）已经成为一种非常流行的技术。常见的组件技术都基于PME模型，即属性（Property）、方法（Method）和事件（Event）。</P>
<P>基于PME的组件技术可以方便地实现IoC（Inversion of Control，控制反转），是从IDE的plugin到应用服务器的“热发布”等许多技术的基础。 <BR>PHP从版本5开始，大大完善了对OO的支持，以前不能被应用的许多pattern现在都可以在PHP5中实现。因此，是否能够实现基于PHP的组件技术，也就成了一个值得讨论的问题。 <BR>下面对PHP对于PME模型的支持，逐一进行讨论： </P>
<P>&amp;#61548; 属性（Property） <BR>PHP并不支持类似Delphi或者C#的property语法，但这并不是问题。Java也不支持property语法，但是通过getXXX()和setXXX()的命名约定，同样可以支持属性。</P>
<P>PHP也可以通过这一方式来支持属性。但是，PHP提供了另一种也许更好的方法，那就是__set()和__get()方法。 <BR>在PHP中，每一个class都会自动继承__set()和__get()方法。它们的定义如下： </P>
<P>void __set ( string name, mixed value ) <BR>mixed __get ( string name ) </P>
<P>这两个方法将在下列情况下被触发：当程序访问一个当前类没有显式定义的属性时。在这个时候，被访问的属性名称作为参数被传入相应的方法。任何类都可以重载__set()和__get()方法，以实现自己的功能。 <BR>如下例： </P>
<P>class PropertyTester { </P>
<P>public function __get($PropName) { <BR>echo "Getting Property $PropNamen"; <BR>} </P>
<P>public function __set($PropName, $Value) { <BR>echo "Setting Property $PropName to '$Value'n"; <BR>} <BR>} </P>
<P>$Prop = new PropertyTester(); <BR>$Prop-&gt;Name; <BR>$Prop-&gt;Name = "some string"; </P>
<P>类PropertyTester重载了__set()和__get()方法，为了测试，仅仅将参数打印输出，没有做更多的工作。测试代码创建了PropertyTester类的实例，并试图读写它并不存在的一个属性Name。此时，__set()和__get()相继被调用，并打印出相关参数。它的输出结果如下： </P>
<P>Getting Property Name <BR>Setting Property Name to 'some string' </P>
<P>基于这种机制，我们可以将属性的值放在一个private的List中，在读写属性时，通过重载__set()和__get()方法，读写List中的属性值。 <BR>但是，__set()和__get()方法的有趣之处远不止及。通过这两个方法，可以实现动态属性，也就是不在程序中显式定义，而是在运行时动态生成的属性。只要想想这种技术在OR Mapping中的作用就能够明白它的重要性了。配合__call()方法（用于实现动态方法，在下一节中详述），它能够取代丑陋的代码生成器（code generator）的大部分功能。 </P>
<P>&amp;#61548; 方法（Method） <BR>PHP对方法的支持比较简单，没有太多可以讨论的。值得一提的是，PHP从版本5开始支持类的静态方法（static method），这使得程序员再也不用无谓地增加许多全局函数了。 </P>
<P>&amp;#61548; 事件（Event） <BR>事件也许是PHP遇到的最复杂的问题。PHP并没有在语法层面提供对事件的支持，我们只能考虑通过别的途径来实现。因此，我们需要先对事件的概念和其他语言对事件的实现方式进行讨论。 </P>
<P>事件模型可以简述如下：充当事件触发者的代码本身并不处理事件，而仅仅是在事件发生时，把程序控制权转交给事件的处理者，在事件处理完成后，再收回控制权。事件触发者本身并不知道事件将会被如何处理，在大多数情况下，事件触发者的代码要先于事件处理者的代码被完成。 </P>
<P>在传统的面向过程的语言（例如C或者PASCAL）中，事件可以通过函数指针来实现。具体来说，事件触发者定义一个函数指针，这个函数指针可以在以后被指向某个处理事件的函数。在事件发生时，调用该函数指针指向的处理函数，并将事件的上下文作为参数传入。处理完成后，控制权再回到事件触发者。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; </P>
<P>在面向对象的语言中，方法指针（指向某个类的方法的指针）取代了函数指针。以Delphi为例，事件处理的例子如下： </P>
<P>type <BR>TNotifyEvent = procedure(Sender: TObject) of object; <BR>TMainForm = class(TForm) <BR>procedure ButtonClick(Sender: TObject); <BR>… <BR>End; <BR>Var <BR>MainForm: TMainForm; <BR>OnClick: TNotifyEvent; <BR>… </P>
<P>可以看出，TNotifyEvent被定义为所谓的过程类型（Procedural Type），事实上就是一个方法指针。TMainForm的ButtonClick方法是一个事件处理者，符合TNotifyEvent的签名。OnClick是一个事件触发者。在实际使用时，通过如下代码： </P>
<P>OnClick := MainForm.ButtonClick; </P>
<P>将MainForm.ButtonClick方法绑定到了OnClick事件。当OnClick事件触发时，MainForm.ButtonClick方法将被调用，并且将Sender(触发事件的组件对象)作为参数传入。 <BR>回到PHP，由于PHP不支持指针，因此无法使用函数指针这一技术。但是，PHP支持所谓的“函数变量”，可以把函数赋予某个变量，其作用类似于函数指针。如下例： </P>
<P>function EventHandler($Sender) { <BR>echo "Calling EventHandler(), arv = $Sendern"; <BR>} </P>
<P>$Func = 'EventHandler'; <BR>$Func('Sender Name'); </P>
<P>在面向对象的语言中，方法指针（指向某个类的方法的指针）取代了函数指针。以Delphi为例，事件处理的例子如下： </P>
<P>type <BR>TNotifyEvent = procedure(Sender: TObject) of object; <BR>TMainForm = class(TForm) <BR>procedure ButtonClick(Sender: TObject); <BR>… <BR>End; <BR>Var <BR>MainForm: TMainForm; <BR>OnClick: TNotifyEvent; <BR>… </P>
<P>可以看出，TNotifyEvent被定义为所谓的过程类型（Procedural Type），事实上就是一个方法指针。TMainForm的ButtonClick方法是一个事件处理者，符合TNotifyEvent的签名。OnClick是一个事件触发者。在实际使用时，通过如下代码： </P>
<P>OnClick := MainForm.ButtonClick; </P>
<P>将MainForm.ButtonClick方法绑定到了OnClick事件。当OnClick事件触发时，MainForm.ButtonClick方法将被调用，并且将Sender(触发事件的组件对象)作为参数传入。 <BR>回到PHP，由于PHP不支持指针，因此无法使用函数指针这一技术。但是，PHP支持所谓的“函数变量”，可以把函数赋予某个变量，其作用类似于函数指针。如下例： </P>
<P>function EventHandler($Sender) { <BR>echo "Calling EventHandler(), arv = $Sendern"; <BR>} </P>
<P>$Func = 'EventHandler'; <BR>$Func('Sender Name'); </P>
<P>&nbsp;</P>
<P>&nbsp; 由于PHP是一种动态语言，变量可以为任何类型，所以无须先定义函数指针的类型作为事件的签名。直接定义了一个函数EventHandler作为事件处理者，然后将它赋予变量$Func（注意直接使用了字符串形式的函数名），最后触发该事件，并将一个字符串“Sender Name”传给它作为参数。输出的结果是： </P>
<P></P>
<P>Calling EventHandler(), arv = Sender Name </P>
<P>同样地，PHP也提供了类似方法指针的机制。如下例： </P>
<P>Class EventHandler { </P>
<P>public function DoEvent($Sender) { <BR>echo "Calling EventHandler.DoEvent(), arg = $Sendern"; <BR>} <BR>} </P>
<P>$EventHanler = new EventHandler(); <BR>$HandlerObject = $EventHanler; <BR>$Method = 'DoEvent'; <BR>$HandlerObject-&gt;$Method('Sender Name'); </P>
<P>由于PHP中没有能够直接引用对象方法的变量，因此需要使用两个变量来间接实现：$HandlerObject指向对象，$Method指向对象方法。通过$HandlerObject-&gt;$Method方式的调用，可以动态地指向任何对象方法。 <BR>为了使代码更加优雅和更适合复用，可以定义一个专门的类NotifyEvent，并使用一段新的调用代码： </P>
<P>final class NotifyEvent { </P>
<P>private $HandlerObject; <BR>private $Method; </P>
<P>public function __construct($HandlerObject, $Method) { <BR>$this-&gt;HandlerObject = $HandlerObject; <BR>$this-&gt;Method = $Method; <BR>} </P>
<P>public function Call($Sender) { <BR>$Method = $this-&gt;Method; <BR>$this-&gt;HandlerObject-&gt;$Method($Sender); <BR>} <BR>} </P>
<P>$EventHanler = new EventHandler(); <BR>$NotifyEvent = new NotifyEvent($EventHanler, 'DoEvent'); <BR>$NotifyEvent-&gt;Call('Sender Name'); </P>
<P>NotifyEvent类定义了两个私有变量$HandlerObject和$Method，分别指向事件处理者对象和处理方法。在构造函数中对这两个变量赋值，再通过Call方法来调用。 </P>
<P>熟悉C#的读者可以发现，NotifyEvent类与C#中的Delegate十分类似。Delegate超过NotifyEvent的地方在于支持多播（Multicast），也就是一个事件可以绑定多个事件处理者。只要事件触发者自己维护一个NotifyEvent对象数组，支持多播也不是一件难事。 </P>
<P>至此，PHP对事件的支持已经得到了比较圆满的解决。但是，人的求知欲是无穷无尽的。还有没有可能通过其他的方式来实现事件呢？ </P>
<P>除了方法指针，接口（interface）也可以用于实现事件。在Java中，这种技术被广泛应用。其核心思想是，将事件处理者的处理函数定义抽象为一个接口（相当于函数指针的签名），事件触发者针对这个接口编程，事件处理者则实现这个接口。</P>
<P>这种方式的好处在于，不需要语言支持函数指针或方法指针，让代码显得更加清晰和优雅，缺陷在于，实现同一种功能，要使用更多的代码。如下例： </P>
<P>interface IEventHandler { <BR>public function DoEvent($Sender, $Arg); <BR>} </P>
<P>class EventHanlerAdapter implements IEventHandler { </P>
<P>public function DoEvent($Sender, $Arg) { <BR>echo "Calling EventHanlerAdapter.DoEvent(), Sender = $Sender, arg = $Argn"; <BR>} <BR>} </P>
<P>class EventRaiser { </P>
<P>private $EventHanlerVar; </P>
<P>public function __construct($EventHanlerAdapter) { <BR>$this-&gt;EventHanlerVar = $EventHanlerAdapter; <BR>} </P>
<P>public function RaiseEvent() { <BR>if ($this-&gt;EventHanlerVar != null) { <BR>$this-&gt;EventHanlerVar-&gt;DoEvent($this, 'some string'); <BR>} <BR>} </P>
<P>public function __tostring() { <BR>return 'Object EventRaier'; <BR>} </P>
<P>} </P>
<P>$EventHanlerAdapter = new EventHanlerAdapter(); <BR>$EventRaiser = new EventRaiser($EventHanlerAdapter); <BR>$EventRaiser-&gt;RaiseEvent(); </P>
<P>首先定义了一个接口IEventHandler，它包含了方法的签名。EventHanlerAdapter类作为事件处理者，实现了这个接口，并提供了相应的处理方法。EventRaiser类作为事件触发者，针对$EventHanlerVar变量（它应该是IEventHandler接口类型，但是在PHP中不用显式定义）编码。</P>
<P>在实际应用中，将EventHanlerAdapter的实例作为参数赋予传给EventRaiser类的构造函数，当事件发生时，相应的处理方法将被调用。输出结果如下： </P>
<P>Calling EventHanlerAdapter.DoEvent(), Sender = Object EventRaier, arg = some string </P>
<P>最后，让我们回到现实世界中来。虽然我们用PHP完整地实现了PME模型，但是这到底有什么用呢？毕竟，我们不会用PHP去编写IDE，也不会用它编写应用服务器。回答是，基于PME模型的组件技术可以实现更加方便和更大规模的代码复用。</P>
<P>在基于PHP的应用系统中，虽然插件已经被广泛使用，但是通过组件技术可以实现功能更强大、更加规范和更容易维护的插件。此外，组件技术在实现一些大的Framework(例如，针对Web UI的Framework)时，也是不可或缺的。</P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200822095710573</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200822095710573</guid>
    <pubDate>Thu, 20 Mar 2008 09:57:10 +0800</pubDate>
    <dcterms:modified>2008-03-20T09:57:10+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[php沉思录]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200822095520706</link>
    <description><![CDATA[<div><P><STRONG>工作模型</STRONG> </P>
<P>PHP的工作模型非常特殊。从某种程度上说，PHP和ASP、ASP.NET、JSP/Servlet等流行的Web技术，有着本质上的区别。 </P>
<P>以Java为例，Java在Web应用领域，有两种技术：Java Servlet和JSP（Java Server Page）。Java Servlet是一种特殊类型的Java程序，它通过实现相关接口，处理Web服务器发送过来的请求，完成相应的工作。JSP在形式上是一种类似于PHP的脚本，但是事实上，它最后也被编译成Servlet。</P>
<P>也就是说，在Java解决方案中，JSP和Servlet是作为独立的Java应用程序执行的，它们在初始化之后就驻留内存，通过特定的接口和Web服务器通信，完成相应工作。除非被显式地重启，否则它们不会终止。因此，可以在JSP和Servlet中使用各种缓存技术，例如数据库连接池。 </P>
<P>ASP.NET的机制与此类似。至于ASP，虽然也是一种解释型语言，但是仍然提供了Application对象来存放应用程序级的全局变量，它依托于ASP解释器在IIS中驻留的进程，在整个应用程序的生命期有效。</P>
<P>PHP却完全不是这样。作为一种纯解释型语言，PHP脚本在每次被解释时进行初始化，在解释完毕后终止运行。这种运行是互相独立的，每一次请求都会创建一个单独的进程或线程，来解释相应的页面文件。页面创建的变量和其他对象，都只在当前的页面内部可见，无法跨越页面访问。</P>
<P>在终止运行后，页面中申请的、没有被代码显式释放的外部资源，包括内存、数据库连接、文件句柄、Socket连接等，都会被强行释放。 <BR>也就是说，PHP无法在语言级别直接访问跨越页面的变量，也无法创建驻留内存的对象。见下例： </P>
<P>&lt;?php <BR>class StaticVarTester { <BR>public static $StaticVar = 0; <BR>} </P>
<P>function TestStaticVar() { <BR>StaticVarTester :: $StaticVar += 1; <BR>echo "StaticVarTester :: StaticVar = " . StaticVarTester :: $StaticVar; <BR>} </P>
<P>TestStaticVar(); <BR>echo "&lt;br/&gt;"; <BR>TestStaticVar(); <BR>?&gt; </P>
<P>在这个例子中，定义了一个名为StaticVarTester的类，它仅有一个公共的静态成员$StaticVar，并被初始化为0。然后，在TestStaticVar()函数中，对StaticVarTester :: $StaticVar进行累加操作，并将它打印输出。 </P>
<P>熟悉Java或C++的开发者对这个例子应该并不陌生。$StaticVar作为StaticVarTester类的一个静态成员，只在类被装载时进行初始化，无论StaticVarTester类被实例化多少次，$StaticVar都只存在一个实例，而且不会被多次初始化。因此，当第一次调用TestStaticVar()函数时，$StaticVar进行了累加操作，值为1，并被保存。第二次调用TestStaticVar()函数，$StaticVar的值为2。 <BR>打印出来的结果和我们预料的一样： </P>
<P>StaticVarTester :: StaticVar = 1 <BR>StaticVarTester :: StaticVar = 2 </P>
<P>但是，当浏览器刷新页面，再次执行这段代码时，不同的情况出现了。在Java或C++里面，$StaticVar的值会被保存并一直累加下去，我们将会看到如下的结果： </P>
<P>StaticVarTester :: StaticVar = 3 <BR>StaticVarTester :: StaticVar = 4 <BR>… </P>
<P>但是在PHP中，由于上文叙及的机制，当前页面每次都解释时，都会执行一次程序初始化和终止的过程。也就是说，每次访问时，StaticVarTester都会被重新装载，而下列这行语句 </P>
<P>public static $StaticVar = 0; </P>
<P>也会被重复执行。当页面执行完成后，所有的内存空间都会被回收，$StaticVar这个变量(连同整个StaticVarTester类)也就不复存在。因此，无论刷新页面多少次，$StaticVar变量都会回到起点：先被初始化为0，然后在TestStaticVar()函数调用中被累加。所以，我们看到的结果永远是这个： </P>
<P>StaticVarTester :: StaticVar = 1 <BR>StaticVarTester :: StaticVar = 2 <BR>PHP这种独特的工作模型的优势在于，基本上解决了令人头疼的资源泄漏问题。Web应用的特点是大量的、短时间的并发处理，对各种资源的申请和释放工作非常频繁，很容易导致泄漏。</P>
<P>同时，大量的动态html脚本的存在，使得追踪和调试的工作都非常困难。PHP的运行机制，以一种非常简单的方式避免了这个问题，同时也避免了将程序员带入到繁琐的缓冲池和同步等问题中去。在实践中，基于PHP的应用往往比基于Java或.NET的应用更加稳定，不会出现由于某个页面的BUG而导致整个站点崩溃的问题。</P>
<P>(相比之下，Java或.NET应用可能因为缓冲池崩溃或其他的非法操作，而导致整个站点崩溃。)后果是，即使PHP程序员水平不高，也无法写出使整个应用崩溃的代码。PHP脚本可以一次调用极多的资源，从而导致页面执行极为缓慢，但是执行完毕后所有的资源都会被释放，应用仍然不会崩溃。</P>
<P>甚至即使执行了一个死循环，也会在30秒（默认时间）后因为超时而中止。从理论上来说，基于PHP的应用是不太可能崩溃的，因为它的运行机制决定它不存在常规的崩溃这个问题。在实践中，很多开发者也认为PHP是最稳定的Web应用。 </P>
<P>&nbsp; </P>
<P>但是，这种机制的缺点也非常明显。最直接的后果是，PHP在语言级别无法实现跨页面的缓冲机制。这种缓冲机制缺失造成的影响，可以分成两个方面： </P>
<P><STRONG>&nbsp;一是对象的缓冲。</STRONG></P>
<P>如我们所知，很多设计模式都依赖于对象的缓冲机制，对于需要频繁应付大量并发的服务端软件更是如此。因此，对象缓冲的缺失，理论上会极大地降低速度。但是，由于PHP本身的定位和工作机制等原因，它在实际工作中的速度非常快。就作者自己的经验来看，在小型的Web应用中，PHP至少不比Java慢。</P>
<P>在大型的应用中，为了榨干每一分硬件资源，即使PHP本身足够快，一个优秀的对象缓冲机制仍然是必要的。在这种情况下，可以使用第三方的内存缓冲软件，如Memcached。由于Memcached本身的优异特性（高性能，支持跨服务器的分布式存储，和PHP的无缝集成等），在大型的PHP应用中，Memcached几乎已经成为不可或缺的基础设施了。比起使用PHP语言自己实现对象缓冲来，这种第三方解决方案似乎更好一些。</P>
<P><STRONG>二是数据库连接的缓冲。</STRONG></P>
<P>对MySQL，PHP提供了一种内置的数据库缓冲机制，使用起来非常简单，程序员需要做的只是用mysql_pconnect()代替mysql_connect()来打开数据库而已。</P>
<P>PHP会自动回收被废弃的数据库连接，以供重复使用。具有讽刺意味的是，在实际应用中，这种持久性数据库连接往往会导致数据库连接的伪泄漏现象：在某个时间，并发的数据库连接过多，超过了MySQL的最大连接数，从而导致新的进程无法连接数据库。</P>
<P>但是过一段时间，当并发数减少时，PHP会释放掉一些连接，网站又会恢复正常。出现这种现象的原因是，当使用pconnect时，Apache的httpd进程会不释放connect，而当Apache的httpd进程数超过了mysql的最大连接数时，就会出现无法连接的情况。因此，需要小心地调整Apache和Mysql的配置，以使Apache的httpd进程数不会超出MySQL的最大连接数。在某些情况下，一些有经验的PHP程序员宁可继续使用mysql_connect()，而不是mysql_pconnect()。 </P>
<P>就作者所知，在PHP未来的roadmap中，对于工作模型这一部分，没有根本性的变动。这是PHP的缺点，也是PHP的优势，从本质上说，这就是PHP的独特之处。因此，我们很难期待PHP在近期内会对这一问题做出重大的改变。但是，在对待这个问题带来的一系列后果时，我们必须谨慎应对。 </P>
<P><STRONG>数据库访问接口</STRONG> </P>
<P>长期以来，PHP都缺乏一个象ADO或JDBC那样的统一的数据库访问接口。PHP在访问不同的数据库时，使用不同的专门API。例如，使用mysql_connect函数连接MySQL，使用ora_logon函数连接Oracle。平心而论，这种方式并没有象我们想象的那样麻烦。<BR>在真实项目中，把系统从一种数据库完全迁移到另一种数据库的要求是比较少见的，特别是对于LAMP这样的小型项目而言。而且，只要将访问数据库的代码进行了良好的封装，迁移的工作量也会较少。另外，使用专门API，在效率上多少会有一些优势。 </P>
<P>虽然如此，PHP的开发人员仍然在努力构建PHP的统一的数据库访问接口。从PHP 5.1开始，PHP的发行包内置了PDO（PHP Data Objects，PHP数据对象）。PDO具有如下特性： <BR>　　&nbsp;<BR>&amp;#61548; 统一的数据库访问接口。PDO为访问不同的数据库提供了统一的接口，并且能够通过切换数据库驱动程序，方便地支持各种流行的数据库。 <BR>&amp;#61548; 面向对象。PDO完全基于PHP 5的对象机制，因此区别于基于过程的专用API。 <BR>&amp;#61548; 高性能。PDO的底层用C编写，比起用纯PHP开发的其他类似解决方案，有更高的性能。 <BR>　　&nbsp;<BR>一个典型的PDO应用如下例： </P>
<P>$pdo = new PDO("mysql:host=localhost;dbname=justtest", " mysql_user ", " mysql_password"); <BR>　　 $query = "SELECT id, username FROM userinfo ORDER BY ID"; <BR>　　 foreach ($pdo-&gt;query($query) as $row) { <BR>　　 echo $row['id']." | ".$row['username']."&lt;br/&gt;"; <BR>　　 } </P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200822095520706</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200822095520706</guid>
    <pubDate>Thu, 20 Mar 2008 09:55:20 +0800</pubDate>
    <dcterms:modified>2008-03-20T09:55:20+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[牺牲一致性来换取分布式架构的可伸缩性]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200821845645245</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">牺牲一致性来换取分布式架构的可伸缩性</P>
<P style="TEXT-INDENT: 2em">作者 Floyd Marinescu &amp; Charles Humble译者 王丽娟 发布于 2008年3月11日 下午7时30分 </P>
<P style="TEXT-INDENT: 2em">社区</P>
<P style="TEXT-INDENT: 2em"><A href="http://www.infoq.com/cn/architecture">Architecture</A></P>
<P style="TEXT-INDENT: 2em">主题</P>
<P style="TEXT-INDENT: 2em"><A href="http://www.infoq.com/cn/performance-scalability">性能和扩展性</A></P>
<P style="TEXT-INDENT: 2em">系 统架构师角色关键的一方面就是衡量相互冲突的需求、决定解决方案，常常要牺牲一个方面来换取另一个方面。随着系统变得越来越大、越来越复杂，越来越多关于 如何构建应用的传统智慧正在受到挑战。比如说，去年3月在伦敦召开的QCon会议上，Dan Pritchard谈论了eBay的架构。他的介绍随后得到了很多的报道，其中一个主要的结论就是eBay不使用事务，用数据一致性上的损失来换取系统整 体伸缩性和性能上相当大的改进。</P>
<P style="TEXT-INDENT: 2em">InfoQ接着Dan Pritchard在QCon会议上的谈话与他继续讨论，以获得更多信息：</P>
<P style="TEXT-INDENT: 2em">为什么eBay不使用事务，或者为什么可以决定不采取应用级事务？</P>
<P style="TEXT-INDENT: 2em">我们并非一概不使用事务。我们只是不使用跨物理资源的事务，因为它会造成多个组件之间出现依赖。组件可以是应用服务器和数据库。（例如在客户端控制 的事务中，）一个客户端的失败会长久地阻塞数据库资源、超出我们的忍受程度。我们也不使用分布式事务，因为让应用依赖于多个数据库会降低客户端实际的可用性。相反，我们选择缺少事务的设计，并加入失效模式，失效模式可以使客户端甚至在发生数据库可用性问题的时候也能继续进行。</P>
<P style="TEXT-INDENT: 2em">应用级事务总是有些问题。只要让开发人员管理资源的生命周期，就少不了因管理出错而引起的Bug。事务管理和内存管理比起来没有多大的不同，而且我们看到由于生命周期问题，语言的总体趋势是不再让开发人员负责内存管理。假设Bean后面的每个数据库操作都是同等重要的，那么声明性事务（就像EJB中 的那些）就是一个简化事务管理的强有力的方法。</P>
<P style="TEXT-INDENT: 2em">是否采用事务真正取决于你的伸缩性和可用性目标。如果你的应用需要达到每秒数百笔事务，你会发现分布式事务达不到这一目标。如果你想使可用性超过 99.9%，那么你根本不能想当然地假设所有的数据库提交都能在Web页面的上下文中完成。遗憾的是，对于何时应当放弃应用级事务并没有简单的规则。相反，做为一名架构师，你必须决定什么时候应当为了满足系统的一个制约因素的要求而放松对另一个制约因素的要求。</P>
<P style="TEXT-INDENT: 2em">你是怎样为像“出价竞拍”这样的操作实现原子性的？</P>
<P style="TEXT-INDENT: 2em">出价竞拍本身就是一个很有意思的问题，原子性并不是重点，更多的是关系到在拍卖关键的最后几秒钟里不要阻塞任何出价人。如果改成在显示时刻而不是在 出价时刻计算最高出价人和最高出价，就会变得非常简单。所有出价都被插入到一个单独的子表，插入操作不太会引起资源争用的情况。每次显示产品的时候，再重新取回所有的出价，并且在这个时候应用业务逻辑来决定最高的出价人。</P>
<P style="TEXT-INDENT: 2em">你的问题背后隐藏的真正问题是我们如何实现一致性？要在大型系统中实现一致性，你必须放弃ACID，转而使用BASE：</P>
<P style="TEXT-INDENT: 2em">基本可用（Basically Available）</P>
<P style="TEXT-INDENT: 2em">软状态（Soft state）</P>
<P style="TEXT-INDENT: 2em">最终一致（Eventually consistent）</P>
<P style="TEXT-INDENT: 2em">如果你能够在每个客户端请求快结束的时候放松对数据一致的要求，就有可能消除分布式事务，并使用其它机制来达成一致的状态。举例来说，在上面的出价 案例中，我们也更新视图数据表，视图数据表是按照出价人来组织数据的，目的是加速“我的eBay”页面的显示。这里用两个异步事件来完成。一个是依靠内存 中的队列，因为我们希望尽量缩短从出价到在显示在“我的eBay”页面上之间的响应时间。但是，内存中的队列不可靠，所以在发生出价操作的时候，我们同时用一个服务器端事务来捕获出价事件。即使内存中队列的操作失败了，这个出价事件也能根据还原机制被处理。出价人视图数据表因此而解耦，但不总是与出价表的 状态保持一致。不过这是我们可以接受的让步，它让出价表和出价视图表之间不必服从ACID要求。</P>
<P style="TEXT-INDENT: 2em">对其它大型系统的架构，你有什么建议吗？</P>
<P style="TEXT-INDENT: 2em">最简单的建议就是，给一个为小规模应用而设计的架构增加资源并不能让它变成大规模的架构。你必须打破常规模式，比如ACID和分布式事务。乐于寻找机会放松一些约束，即使传统上认为是不能放松的。</P>
<P style="TEXT-INDENT: 2em">还有两条简单的原则：把每样东西都设计成分离的；考虑BASE、而不是ACID。</P>
<P style="TEXT-INDENT: 2em">亚马逊CTO Werner Vogels<A href="http://www.infoq.com/presentations/availability-consistency">也在QCon</A><A href="http://www.infoq.com/presentations/availability-consistency">上</A><A href="http://www.infoq.com/presentations/availability-consistency">发了言</A>，他通过引用Eric Brewer的CAP定理提供了一些权衡取舍更深层的背景。这个定理曾在<A href="http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf">2000年PODC会议上</A>（.pdf 文件）进行过介绍，介绍中也包括ACID vs. BASE的内容。它陈述了对于数据共享系统的三项属性——数据一致性、系统可用性、对网络分区的耐受性——在同一时间只能达成其中的两项。换句话说，一个 不能容忍网络分区的系统可以利用像事务这样普通的技术来实现一致性和可用性。然而，像亚马逊和eBay这样的大型分布式系统，网络分区是既定的。它的后果 就是，大型分布式系统的架构必须决定时放松对一致性的要求，还是放松对可用性的要求。两种选择都会给开发人员造成一些负担，他们需要了解他们处理的架构的特点。比如说，如果你选择放松一致性要求，那么开发人员就要决定怎样处理这种情形——对系统的写入不会立即反映到对应的读出中。就像Windows Live项目经理Dare Obasanjo在他的<A href="http://www.25hoursaday.com/weblog/2007/03/19/LivingWithoutDatabaseTransactions.aspx">博客</A>中写的一样。</P>
<P style="TEXT-INDENT: 2em">我们在Windows Live平台的某些方面也采用了类似的做法。我也听到了开发人员抱怨一件事情，就是原先能通过事务轻松获得的错误恢复，现在要留给应用开发人员来处理。最大的苦恼往往是关于回滚复杂的批处理操作。</P>
<P style="TEXT-INDENT: 2em">许多大型网站似乎都殊途同归，得到了同样的结论。观察到这一点是很有意思的。虽然只有几个节点的小型系统尚不需要关注这些形形色色的权衡取舍，但是eBay和亚马逊正在处理的各种问题可能已经开始在企业系统中出现了，因为这些企业系统的用户规模也正变得越来越大。</P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200821845645245</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200821845645245</guid>
    <pubDate>Tue, 18 Mar 2008 16:56:45 +0800</pubDate>
    <dcterms:modified>2008-03-18T16:56:45+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[zendframework 权限验证登陆]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200821745853530</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">讲述Zend 的权限和身份验证的综合应用</P>
<P style="TEXT-INDENT: 2em">2008-03-07 13:47:16 / 个人分类：<A href="http://www.phpchina.com/32412/spacelist_type_blog_itemtypeid_3160.html">Zend Framework</A> </P>
<P style="TEXT-INDENT: 2em">讲述Zend</A> 的权限</A>和身份验证</A>的综合应用.</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">思路如下:</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ---àsetModule()</P>
<P style="TEXT-INDENT: 2em">浏览器地址---àZend_Controller_Front---àregisterPlugin---àsetController()</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --àsetAction()</P>
<P style="TEXT-INDENT: 2em">registerPlugin载入的插件处理程序将完成权限判断后定义程序的流程.</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">代码</A>详解:</P>
<P style="TEXT-INDENT: 2em">主文件(index.php)</P>
<P style="TEXT-INDENT: 2em">$dbconfig = array(</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘type’ =&gt; ‘PDO_MYSQL’,</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘db’&nbsp; =&gt; array(</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘host’ =&gt; ‘localhost’,</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘username’ =&gt; ‘root’,</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘password’ =&gt; ‘123456’,</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘dbname’&nbsp; =&gt; ‘zend’</P>
<P style="TEXT-INDENT: 2em">)</P>
<P style="TEXT-INDENT: 2em">);</P>
<P style="TEXT-INDENT: 2em">//创建一个数据库</A>连接先</P>
<P style="TEXT-INDENT: 2em">$db = Zend_Db::Factory($dbconfig[‘type’], $dbconfig[‘db’]);</P>
<P style="TEXT-INDENT: 2em">$acl = new MyAcl();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //创建了一个MyAcl对象. MyAcl内完成分配权限功能.</P>
<P style="TEXT-INDENT: 2em">$auth = Zend_Auth::getInstance();</P>
<P style="TEXT-INDENT: 2em">$frontController = new Zend_Controller_Front();</P>
<P style="TEXT-INDENT: 2em">$frontController-&gt;throwException(true);</P>
<P style="TEXT-INDENT: 2em">$frontController-&gt;setDefaultDirectory(‘./application/controllers’)</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;-&gt;registerPlugin(new MyAuth($auth, $acl)); //注册一个权限处理和身份验证插件,这个插件将对当前用户进行验证，并判断是否具备权限.并分别对程序的module, controller, action进行定义。</P>
<P style="TEXT-INDENT: 2em">$frontController-&gt;dispatch();</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">这是MyAcl类所有的文件(MyAcl.php)</P>
<P style="TEXT-INDENT: 2em">解释这个文件代码前，先交代一下代码中用到的ini文件.内容如下:</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">[index]</P>
<P style="TEXT-INDENT: 2em">Index = index:index</P>
<P style="TEXT-INDENT: 2em">Add = index:add</P>
<P style="TEXT-INDENT: 2em">Edit = index:edit</P>
<P style="TEXT-INDENT: 2em">Del = index:del</P>
<P style="TEXT-INDENT: 2em">Login = index:login</P>
<P style="TEXT-INDENT: 2em">Logout = index:logout</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">对这种格式很熟悉吧, Zend_Config_Ini 载入后，等号左边将为数组的指针， 右边为数组的值.</P>
<P style="TEXT-INDENT: 2em">Class MyAcl extents Zend_Acl {</P>
<P style="TEXT-INDENT: 2em">Function __Construct() {</P>
<P style="TEXT-INDENT: 2em">/*载入ini文件后，将得到一个数组</P>
<P style="TEXT-INDENT: 2em">$config = array(</P>
<P style="TEXT-INDENT: 2em">‘index’ = &gt; ‘index:index’,</P>
<P style="TEXT-INDENT: 2em">‘add’&nbsp; =&gt; ‘index:add’,</P>
<P style="TEXT-INDENT: 2em">‘edit’&nbsp; =&gt; ‘index:edit’,</P>
<P style="TEXT-INDENT: 2em">‘del’&nbsp; =&gt; ‘index:del’,</P>
<P style="TEXT-INDENT: 2em">‘login’ =&gt; ‘index:login’,</P>
<P style="TEXT-INDENT: 2em">‘logout’ =&gt; ‘index:logout’</P>
<P style="TEXT-INDENT: 2em">)</P>
<P style="TEXT-INDENT: 2em">*/</P>
<P style="TEXT-INDENT: 2em">$config = new Zend_Config_Ini(‘resource.ini’, ‘index’);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Foreach($config as $key =&gt; $value) {</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;$this-&gt;add(new Zend_Acl_Resource($value));&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //将配置文件中的值添加至资源中.完成了的Acl中的资源设置.</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;addRole(new Zend_Acl_Role(‘guest’));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //分三个权限等级,完成对角色的设置.</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;addRole(new Zend_Acl_Role(‘editor’), ‘guest’);&nbsp;&nbsp; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;addRole(new Zend_Acl_Role(‘admin’));</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //分配权限, Zend_Acl 提供allow和deny方法.</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;deny(‘guest’, null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //初级用户将不具备任何权限.</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;allow(‘editor’, array(‘index:index’, ‘index:add’, ‘index:edit’, ‘index:del’, array(‘index’,’add’,’edit’,’del’);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;allow(‘admin’);</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">MyAuth.php</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">Class MyAuth extents Zend_Controller_Plugins_Abstractor {</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Private $_acl;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Private $_auth;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Private $noauth = array(</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘module’ =&gt; ‘index’,</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘controller’ =&gt; ‘index’</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘action’&nbsp;&nbsp; =&gt; ‘login’</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Private $nopur = array(</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘module’ =&gt; ‘index’,</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘controller’ =&gt; ‘index’,</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘action’&nbsp; =&gt; ‘login’</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 获取从主文件<I>index.php </I><I>中传递过来的对象参数$auth, $acl</I></P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Public function __construct($auth, $acl) {</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;_auth = $auth;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;_acl&nbsp; = $acl;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Public function preDispatch(Zend_Controller_Request_Abstractor $request) {</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If(!$this-&gt;_auth-&gt;hasIdentity()) {</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $role = $this-&gt;_auth-&gt;getIdentity()-&gt;role;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $role = ‘guest’;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $module = $request-&gt;module();</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $controller = $request-&gt;controller();</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $action&nbsp;&nbsp; = $request-&gt;action();</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $resource = “$controller:$action”;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If(!$this-&gt;_acl-&gt;has($resource)) {</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $resource = null;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $if(!$this-&gt;_acl-&gt;isallowed($role, $resource, $action)) {</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 没有权限或者没有验证时，分别定义Module Controller Action</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If(!$this-&gt;_auth-&gt;hasIdentity()) {</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $module = $noauth[‘module’];</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $controller = $noauth[‘controller’];</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $action&nbsp; = $noauth[‘action’];</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $module = $nopur[‘module’];</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $controller = $nopur[‘controller’];</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $action = $nopur[‘action’];</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request-&gt;setModuleName($module);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request-&gt;setControllerName($controller);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request-&gt;setActionName($action);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">身份验证文件代码(login.php)</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">Function loginAction() {</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If($this-&gt;_request-&gt;isPost()) {</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $filter = new Zend_Filter_Striptags();</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $username = trim($filter-&gt;filter($this-&gt;_request-&gt;getPost(‘username’));</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $password = trim($filter-&gt;filter($this-&gt;_request-&gt;getPost(‘password’));</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $db = Zend_Registry::get(‘db’);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $authAdapter = new Zend_Auth_Adapter_DbTable($db, ‘users’, ‘username’, ‘password’);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $authAdapter-&gt;setIdentity($username)</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; -&gt;setCredential(md5($password));</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $auth = Zend_Auth::getInstance();</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $result = $auth-&gt;authenticate($authAdapter);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If($result-&gt;isValid()) {</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $data = $authAdapter-&gt;getResultRowObject(null, ‘password’);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $auth-&gt;getStorage()-&gt;write($data);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;_redirct(‘/’);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Return;</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200821745853530</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200821745853530</guid>
    <pubDate>Mon, 17 Mar 2008 16:58:53 +0800</pubDate>
    <dcterms:modified>2008-03-17T16:58:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[张学友经典永远让人难忘]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/139685482008128210449</link>
    <description><![CDATA[<div>&nbsp; 很久没有听学友的歌曲，耳边再次响起那熟悉的旋律，细细品味，总能触动我的内心深处，触动些让我难忘的东西，触动了一曲曲的回忆，清晰的记得每次听这些歌曲的时候一些让我难以忘记的东西，成长中，忙碌中，我们的灵魂渐渐远离过去，每天枯燥的工作忙碌，让我们无法体会那些经典心境，只有静下心来，听那些经典的歌曲，才能回到当初时候的我们，灵魂在这里真的也得到了精华，生活中也缺少太多的感动，是歌声让我更加热爱生活，是歌声让我珍藏，品味回忆。<BR>&nbsp;&nbsp; 忘不了每个一个人的晚上，伴着学友的歌声入睡，和着美丽的旋律，品着歌中的意境，让人陶醉，让人迷恋，前程往事成云烟中，回忆那些经典的记忆，心灵深处真的超然的洒脱。忘不了离别的车站，歌声表达我们的心境，纵然再多的痛楚，再多的情意都在歌中让我们心灵共鸣，祝福的歌声总让人体会的不只是温暖，更让让我们的灵魂相容，是歌声传达了我们的情意。总记得那些激情燃烧的岁月我们于歌共舞，记得beyond的歌声，那中让我们心灵震撼的歌曲，让我们呼喊，呼喊生活，呼喊心灵的解脱。<BR>&nbsp;&nbsp; 光辉岁月，又让我们想起了众多的一刹那，一刹那的激情燃烧，一刹那的激情飘然。<BR>&nbsp; 太多太多的回忆，溶进了歌曲里面，记得那个冬天，我们并走在夕阳西下的小河边，唱着学友的每天爱你多一些，记得离别的镜头，我们唱起让我们流泪的祝福，记得激情燃烧的舞会，我们共同呐喊海阔天空。<BR>&nbsp; 燃烧的岁月，激情的歌曲，虽然在飞逝，但都深深的进入到自己的内心。成为永远的经典 </div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/139685482008128210449</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/139685482008128210449</guid>
    <pubDate>Thu, 28 Feb 2008 14:10:04 +0800</pubDate>
    <dcterms:modified>2008-02-28T14:10:04+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[熟悉windows程序的基本运行机制]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/1396854820081275172621</link>
    <description><![CDATA[<div>#include &lt;windows.h&gt;<BR>#include &lt;stdlib.h&gt;<BR>#include &lt;string.h&gt;<BR>#include &lt;math.h&gt;<BR>#define PI 3.1415926
<P>int nNum=0,nMaxNum=20;</P>
<P>LRESULT CALLBACK WindowProc(<BR>&nbsp;&nbsp;HWND hwnd,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// handle to window<BR>&nbsp;&nbsp;UINT uMsg,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// message identifier<BR>&nbsp;&nbsp;WPARAM wParam,&nbsp;&nbsp;// first message parameter<BR>&nbsp;&nbsp;LPARAM lParam&nbsp;&nbsp; // second message parameter<BR>);<BR>int WINAPI WinMain(<BR>&nbsp;&nbsp;HINSTANCE hInstance,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// handle to current instance<BR>&nbsp;&nbsp;HINSTANCE hPrevInstance,&nbsp;&nbsp;// handle to previous instance<BR>&nbsp;&nbsp;LPSTR lpCmdLine,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// command line<BR>&nbsp;&nbsp;int nCmdShow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// show state<BR>)</P>
<P>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;HWND hwnd;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MSG Msg;<BR>&nbsp;&nbsp;&nbsp;&nbsp;WNDCLASS wndclass;<BR>&nbsp;&nbsp;&nbsp;&nbsp;wndclass.cbClsExtra=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;wndclass.cbWndExtra=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);<BR>&nbsp;&nbsp;&nbsp;&nbsp;wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);<BR>&nbsp;&nbsp;&nbsp;&nbsp;wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);<BR>&nbsp;&nbsp;&nbsp;&nbsp;wndclass.hInstance=hInstance;<BR>&nbsp;&nbsp;&nbsp;&nbsp;wndclass.lpfnWndProc=WindowProc;<BR>&nbsp;&nbsp;&nbsp;&nbsp;wndclass.lpszClassName="abc";<BR>&nbsp;&nbsp;&nbsp;&nbsp;wndclass.lpszMenuName=NULL;<BR>&nbsp;&nbsp;&nbsp;&nbsp;wndclass.style=0;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;RegisterClass(&amp;wndclass);</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;hwnd=CreateWindow("abc","旋转的风车",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,600,450,NULL,NULL,hInstance,NULL);</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;ShowWindow(hwnd,SW_SHOWNORMAL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;UpdateWindow(hwnd);</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;while(GetMessage(&amp;Msg,hwnd,NULL,0))<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TranslateMessage(&amp;Msg);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DispatchMessage(&amp;Msg);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}</P>
<P>LRESULT CALLBACK WindowProc(<BR>&nbsp;&nbsp;HWND hwnd,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// handle to window<BR>&nbsp;&nbsp;UINT uMsg,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// message identifier<BR>&nbsp;&nbsp;WPARAM wParam,&nbsp;&nbsp;// first message parameter<BR>&nbsp;&nbsp;LPARAM lParam&nbsp;&nbsp; // second message parameter<BR>)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;HDC hdc;<BR>&nbsp;&nbsp;&nbsp;&nbsp;HBRUSH hBrush;<BR>&nbsp;&nbsp;&nbsp;&nbsp;HPEN hp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;PAINTSTRUCT ps;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int nCenterX,nCenterY;<BR>&nbsp;&nbsp;&nbsp;&nbsp;double fAngle;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;switch(uMsg)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;case WM_PAINT:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hdc=BeginPaint(hwnd,&amp;ps);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetMapMode(hdc,MM_ANISOTROPIC);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetWindowExtEx(hdc,400,300,NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetViewportExtEx(hdc,600,450,NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetViewportOrgEx(hdc,300,200,NULL);</P>
<P>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;绘制外圆<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hp=CreatePen(PS_SOLID,1,RGB(255,0,255));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SelectObject(hdc,hp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ellipse(hdc,-100,-100,100,100);</P>
<P>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;绘制风车的叶片<BR>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;绘制红色的叶片<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hBrush=CreateSolidBrush(RGB(255,0,0));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SelectObject(hdc,hBrush);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fAngle=2*PI/nMaxNum*nNum;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nCenterX=(int)(50*cos(fAngle));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nCenterY=(int)(50*sin(fAngle));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pie(hdc,nCenterX-50,nCenterY-50,nCenterX+50,nCenterY+50,(int)(nCenterX+50*cos(fAngle)),(int)(nCenterY+50*sin(fAngle)),(int)(nCenterX+50*cos(fAngle+PI)),(int)(nCenterY+50*sin(fAngle+PI)));</P>
<P>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;绘制蓝色的叶片<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hBrush=CreateSolidBrush(RGB(255,255,0));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SelectObject(hdc,hBrush);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nCenterX=(int)(50*cos(fAngle+2*PI/3));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nCenterY=(int)(50*sin(fAngle+2*PI/3));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pie(hdc,nCenterX-50,nCenterY-50,nCenterX+50,nCenterY+50,(int)(nCenterX+50*cos(fAngle+2*PI/3)),(int)(nCenterY+50*sin(fAngle+2*PI/3)),(int)(nCenterX+50*cos(fAngle+PI+2*PI/3)),(int)(nCenterY+50*sin(fAngle+PI+2*PI/3)));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;绘制黄色的叶片<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hBrush=CreateSolidBrush(RGB(0,255,255));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SelectObject(hdc,hBrush);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nCenterX=(int)(50*cos(fAngle+4*PI/3));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nCenterY=(int)(50*sin(fAngle+4*PI/3));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pie(hdc,nCenterX-50,nCenterY-50,nCenterX+50,nCenterY+50,(int)(nCenterX+50*cos(fAngle+4*PI/3)),(int)(nCenterY+50*sin(fAngle+4*PI/3)),(int)(nCenterX+50*cos(fAngle+PI+4*PI/3)),(int)(nCenterY+50*sin(fAngle+PI+4*PI/3)));</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nNum++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sleep(100);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InvalidateRect(hwnd,NULL,1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EndPaint(hwnd,&amp;ps);</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;case WM_CLOSE:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PostQuitMessage(0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;default:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return DefWindowProc(hwnd,uMsg,wParam,lParam);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}</P>
<P>&nbsp;</P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/1396854820081275172621</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/1396854820081275172621</guid>
    <pubDate>Wed, 27 Feb 2008 17:17:26 +0800</pubDate>
    <dcterms:modified>2008-02-27T17:17:26+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[优美散文]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200812504576</link>
    <description><![CDATA[<div>&nbsp;打开窗户，有些寒意，在这样清冷的季节，突然有种莫名的喜欢，微风吹起，落叶飞舞起来；花瓣飘落时，还残留着暗暗幽香；云朵飘过时，有种从容随意的淡然；在心动时，有种幸福美妙的滋味……<BR>　　　　不想做颓废落寞的女子，所以，精致的生活着；所以，快乐的工作着；所以，还是淡淡的想你，间或许，淡淡的流泪。心与心的碰撞带来的永远是最闪烁的火花，即使忧伤，也是因为思之太切的心与心的交融，撞击心扉带来的微微疼痛，从未有过的感觉，所以盈满从未有过的欣喜。<BR>　　　　风中扬起的落叶飘零的忧伤还没有隐去，如飞舞的发丝般缠绕的思绪，让我不可抑制的遥望远方的你，以我熟悉和渴望的样子描绘你的身影，因为，我知道你没有离开，所以，我依然在这里，以自己的方式淡淡的想你，然后记在心里，描摹成一道绝美的风景。<BR>　　　　　我，在这里静静的等候，因为我知道，你，一定会来。<BR>　　　　　当你带着满身的花香，迎着春日里明媚的阳光来时，我会让你知道，我的心情一如那春光，灿烂，温暖，你会知道，那是我为你早已准备好的美丽；当你迎着夏日里微微的小雨，涉水而来时，你会看到，一把美丽的油纸伞一直在那里等你，直到你也站在伞下，你和我成为雨中漫步时的风景；当你在秋日里踏着金色的收获而来时，我会捧着希望，为你斟上一杯祝福的酒，你会知道，那里面，融进了我的欢畅和你的欢畅；当你在落花飘雪的季节迎风而来时，我会放你的手在我的手，你会知道，用一颗心暖另一颗心，用一份情融化另一份情，不会用太久。<BR>　　　　四季的轮回，也没有淹没想念的痕迹，我相信，有期待，就会有痛苦，但，也会有幸福。触摸不到你的脸庞，感觉不到你的气息，可我知道我是如此的想你，你的名字如蝶般翩翩起舞，轻轻落在我的梦里，让一朵花开的声音也带着轻盈，播洒着春天的信息，对着有你的梦境，我微笑着告诉你，我在想你。<BR>　　　　把心情写成文字，在风起的时候放飞，到有你的那片天空，诉说彼此的诺言，相信不管千里万里，你都会知道我的心意。梦渐渐清醒，想你，才刚刚开始，淡淡的，淡淡的回忆……<BR></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200812504576</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200812504576</guid>
    <pubDate>Mon, 25 Feb 2008 12:45:07 +0800</pubDate>
    <dcterms:modified>2008-02-25T12:45:07+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[二泉映月意境赏析]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/1396854820081201212818</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">赏析二：</P>
<P style="TEXT-INDENT: 2em">听听琴声悠悠是何人在黄昏后</P>
<P style="TEXT-INDENT: 2em">身背着琵琶沿街走背着琵琶</P>
<P style="TEXT-INDENT: 2em">沿街走阵阵秋风吹动着他的青衫</P>
<P style="TEXT-INDENT: 2em">袖淡淡的月光石板路上人影瘦</P>
<P style="TEXT-INDENT: 2em">步履遥遥出巷口宛转</P>
<P style="TEXT-INDENT: 2em">又上小桥头四野寂静灯火</P>
<P style="TEXT-INDENT: 2em">微茫映画楼操琴的人</P>
<P style="TEXT-INDENT: 2em">似问知音何处有~一声低吟</P>
<P style="TEXT-INDENT: 2em">一回头只见月照芦狄洲，只见月照芦狄洲</P>
<P style="TEXT-INDENT: 2em">琴音绕丛林，心在颤抖声声犹如松风吼</P>
<P style="TEXT-INDENT: 2em">又似泉水匆匆流</P>
<P style="TEXT-INDENT: 2em">憔悴琴魂作漫游平生事啊</P>
<P style="TEXT-INDENT: 2em">难回首岁月消逝人烟留</P>
<P style="TEXT-INDENT: 2em">年少青丝转瞬已然变白头苦伶仃</P>
<P style="TEXT-INDENT: 2em">举目无亲友风雨泥泞</P>
<P style="TEXT-INDENT: 2em">怎忍受荣辱沉浮无怨尤荣辱沉浮无怨尤</P>
<P style="TEXT-INDENT: 2em">惟有这琴弦解离愁晨昏常相伴</P>
<P style="TEXT-INDENT: 2em">苦乐总相守酒醒人散余韵悠</P>
<P style="TEXT-INDENT: 2em">酒醒人散余韵悠莫说壮志难踌</P>
<P style="TEXT-INDENT: 2em">胸中歌千首都为家乡山水留</P>
<P style="TEXT-INDENT: 2em">天地悠悠唯情最长久共</P>
<P style="TEXT-INDENT: 2em">祝愿五洲四海烽烟收</P>
<P style="TEXT-INDENT: 2em">家家笙歌奏年年岁岁乐无忧</P>
<P style="TEXT-INDENT: 2em">年年岁岁乐无忧纵然人似黄鹤</P>
<P style="TEXT-INDENT: 2em">一抔净土惠山丘噢此情绵绵不休</P>
<P style="TEXT-INDENT: 2em">天涯芳草知音有你的琴声还伴着泉水流&nbsp; &nbsp; </P>
<P style="TEXT-INDENT: 2em"><A href="http://baike.baidu.com/view/1273635.htm">刘周</A> </P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 心似泉水冷,</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 萧萧风吹月独明；</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 人世间，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 酸甜苦辣尽，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 到头总如月影空。</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 昨夜无月，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 叹泉水淙淙溺侬心；</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 想弦月曾经，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 凄凄惨惨照愁人。</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 功名富贵如烟散，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 花落人亡似飘蓬。</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 多少孽冤，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 此生处处尽遭逢；</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 奈何有恨，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 历遍沧桑还是恨。</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 堪怨月圆豪门宴，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 月缺月半生柔情；</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 粼粼波光载美色，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 粉黛玉体陈。</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 一回望月一回明，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 不识人间有峥嵘；</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 只问风月憔悴损，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 岂怜沦落饿死人；</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 我今有泪对月下，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 泪落泉中无处寻；</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 经年往事才回首，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 数语难尽，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 月儿弯弯泉中空，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 欲上天入地总无门。</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 谁怜我月经风雨，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 风雨蹒跚月朦胧；</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 仰天难见月色明，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 低头惟觉泉水冷；</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 春冷夏还冷，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 秋冷冬亦冷；</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 泉冷不知天下病，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 月寒未解老与贫；</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 从来兴衰浮沉，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 善恶终报应。</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 清辉刺破遮月云，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 愁肠泻地，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 风吹雨打尽。</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 古今事，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 一样粪土掩悲容。</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 泉响击空明，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 逐水逝去水还生；</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 人愿一轮常满盈，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 百年人异月同；</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 消磨潘鬓早如梦，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 不辨黄泉仙境。</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 败柳残红可飞升，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 留得一天恨，</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 看破老死心。</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp; 附记：“二泉映月”乃华彦钧先生二胡曲，余谓二泉映月，泉者冷也，月者寒也，所以冷眼看世界焉。因为之词，以辅是曲云尔。</P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/1396854820081201212818</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/1396854820081201212818</guid>
    <pubDate>Wed, 20 Feb 2008 13:02:12 +0800</pubDate>
    <dcterms:modified>2008-02-20T13:02:12+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[linux命令使用技巧]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200811891253681</link>
    <description><![CDATA[<div><P align=left><B><FONT size=3>1.使用nohup命令</FONT></B><FONT size=3><BR>&nbsp;&nbsp;如果你想进程在你退出系统后还能执行，可以使用nohup命令如：<BR>% nohup tar -cf /dev/tape /home &amp;<BR>你退出后再重新登录的话，使用'ps'命令可以看到进程还在执行 <BR><BR><B>2.查看文件的方法</B><BR>&nbsp;&nbsp;如果你只想看文件的前5行，可以使用head命令，如：<BR>head -5 /etc/passwd<BR>&nbsp;&nbsp;如果你想查看文件的后10行，可以使用tail命令，如：<BR>tail -10 /etc/passwd<BR>&nbsp;&nbsp;你知道怎么查看文件中间一段吗？你可以使用sed命令 如:<BR>sed -n '5,10p' /etc/passwd<BR>这样你就可以只查看文件的第5行到第10行。<BR><BR><BR><B>3.计算文件数和目录数</B><BR>&nbsp;&nbsp;下面的语句可以帮你计算有多少个文件和多少个目录.. <BR># ls -l * |grep "^-"|wc -l ---- to count files<BR># ls -l * |grep "^d"|wc -l ----- to count dir<BR>&nbsp;&nbsp;还可以将以上的语句变成script或做个alias <BR><BR><B>4.只列子目录的方法：</B><BR>ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux)<BR>ls -l | grep "^d" 或者 ls -lL | grep "^d" (Solaris)<BR>&nbsp;&nbsp;使用Ksh,用ls !(*.Z)可以显示所有文件，除了*.Z文件。这个命令在一个目录里有许多种类型的文件的时候很有用.</FONT></P>
<P align=left><FONT size=3>contrab 的应用：</FONT></P>
<P align=left><FONT size=3>crontab通过cron服务使用户能够在指定的时间执行某些程序，它通过cron复制，创建列出，删除crontab文件来管理用户权限和计划。<BR><BR>命令格式：crontab [-u username] [-l] [-e] [-r]<BR><BR>选项说明：<BR>-e 编辑当前用户的crontab文件，或者当一个crontab文件不存在时，创建一个crontab 文件。编辑并保存后文件被当前用户的crontab安装。<BR>-l 列出当前crontab文件内容。<BR>-r 删除当前用户的crontab文件。<BR>-u username 指定用户名。<BR><BR>crontab文件格式：<BR><BR>crontab文件有六个域，每个域之间用空格或者Tab键分开，前五个域都是整数或者*,格式如下(括号里面是取值范围)：<BR><BR>分钟(0-59) 小时(0-23) 日(1-31) 月(1-12) 星期(0-6) 要执行的命令<BR><BR>其中星期取值0指星期日，其它取值递推。前面五个域，每个域都可以用*表示所有合法的值，或者用一个列表列出合法的值，各值之间用“，”隔开，也可以用“-”表示一个范围。下面的命令演示每个星期，星期日到星期四晚上执行/home/wuxp/backup.sh。<BR><BR>30 23 * * 0-4 /home/wuxp/backup.sh<BR><BR>下面的例子示出每星期星期一到星期五3:15分清除用户目录下的core文件<BR><BR>15 3 * * 1-5 find &#8194;$HOME -name core 2&gt;/dev/null |xargs rm -f<BR><BR>下面是一个crontab文件的例子，请用crontab -e 命令编辑。<BR><BR>PATH=/usr/bin:/bin:/usr/sbin:/sbin<BR>HOME=/home/wuxp<BR>30 23 * * 0-4 /home/wuxp/backup.sh<BR><BR>前面四行定义环境变量，最后一行是执行的命令，你可以定义要执行多个命令。如果你的crontab文件已经正确编辑，保存退出后会得到一条"crontab:installing new crontab" 的信息。<BR>相关文件：<BR><BR>/etc/cron.allow 如果这个文件存在，文件中包含的用户名可以使用crontab。<BR><BR>/etc/cron.deny 如果这个文件存在，文件中包含的用户不能使用crontab。<BR><BR>你可以自己编辑这两个文件，注意每个用户名占一行。</FONT></P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200811891253681</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200811891253681</guid>
    <pubDate>Mon, 18 Feb 2008 09:12:53 +0800</pubDate>
    <dcterms:modified>2008-02-18T09:18:11+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[看看我像谁]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200811510115715</link>
    <description><![CDATA[<div><A href="http://img.blog.163.com/photo/OyG0OMdqRyE97VQ8HAs5Rw==/3692951694444128603.jpg" target=_blank></A><A href="http://img.blog.163.com/photo/6Y42tKIwgyqEFBUl2NLalg==/3692951694444128604.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/6Y42tKIwgyqEFBUl2NLalg==/3692951694444128604.jpg"></A></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200811510115715</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200811510115715</guid>
    <pubDate>Fri, 15 Feb 2008 10:01:15 +0800</pubDate>
    <dcterms:modified>2008-03-27T09:20:03+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[php设计模式]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/1396854820081125335493</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">class&nbsp;DBfactory </P>
<P style="TEXT-INDENT: 2em">{ </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$pDB; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;function&nbsp;&amp;factory($szType&nbsp;=&nbsp;"") </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;{ </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!is_object(self::$pDB)) </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch($szType) </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'mysql': </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self::$pDB&nbsp;=&nbsp;new&nbsp;DBmysql; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;'mssql': </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self::$pDB&nbsp;=&nbsp;new&nbsp;DBmssql; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default: </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self::$pDB&nbsp;=&nbsp;new&nbsp;DBmysql; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;self::$pDB; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;} </P>
<P style="TEXT-INDENT: 2em">}&nbsp; </P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/1396854820081125335493</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/1396854820081125335493</guid>
    <pubDate>Fri, 1 Feb 2008 14:53:35 +0800</pubDate>
    <dcterms:modified>2008-02-01T14:53:35+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[我喜欢的诗歌]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200802591920842</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">&nbsp;回答</P>
<P style="TEXT-INDENT: 2em">&nbsp;卑鄙是卑鄙者的通行证，</P>
<P style="TEXT-INDENT: 2em">高尚是高尚者的墓志铭，</P>
<P style="TEXT-INDENT: 2em">看吧，在那镀金的天空中，</P>
<P style="TEXT-INDENT: 2em">飘满了死者弯曲的倒影。</P>
<P style="TEXT-INDENT: 2em">&nbsp; </P>
<P style="TEXT-INDENT: 2em">冰川纪过去了，</P>
<P style="TEXT-INDENT: 2em">为什么到处都是冰凌？</P>
<P style="TEXT-INDENT: 2em">好望角发现了，</P>
<P style="TEXT-INDENT: 2em">为什么死海里千帆相竞？</P>
<P style="TEXT-INDENT: 2em">&nbsp; </P>
<P style="TEXT-INDENT: 2em">我来到这个世界上，</P>
<P style="TEXT-INDENT: 2em">只带着纸、绳索和身影，</P>
<P style="TEXT-INDENT: 2em">为了在审判前，</P>
<P style="TEXT-INDENT: 2em">宣读那些被判决的声音。</P>
<P style="TEXT-INDENT: 2em">&nbsp; </P>
<P style="TEXT-INDENT: 2em">告诉你吧，世界</P>
<P style="TEXT-INDENT: 2em">我--不--相--信！</P>
<P style="TEXT-INDENT: 2em">纵使你脚下有一千名挑战者，</P>
<P style="TEXT-INDENT: 2em">那就把我算作第一千零一名。</P>
<P style="TEXT-INDENT: 2em">&nbsp; </P>
<P style="TEXT-INDENT: 2em">我不相信天是蓝的，</P>
<P style="TEXT-INDENT: 2em">我不相信雷的回声，</P>
<P style="TEXT-INDENT: 2em">我不相信梦是假的，</P>
<P style="TEXT-INDENT: 2em">我不相信死无报应。</P>
<P style="TEXT-INDENT: 2em">&nbsp; </P>
<P style="TEXT-INDENT: 2em">如果海洋注定要决堤，</P>
<P style="TEXT-INDENT: 2em">就让所有的苦水都注入我心中，</P>
<P style="TEXT-INDENT: 2em">如果陆地注定要上升，</P>
<P style="TEXT-INDENT: 2em">就让人类重新选择生存的峰顶。</P>
<P style="TEXT-INDENT: 2em">&nbsp; </P>
<P style="TEXT-INDENT: 2em">新的转机和闪闪星斗，</P>
<P style="TEXT-INDENT: 2em">正在缀满没有遮拦的天空。</P>
<P style="TEXT-INDENT: 2em">那是五千年的象形文字，那是未来人们凝视的眼睛。 </P>
<P style="TEXT-INDENT: 2em">　<FONT face=宋体> </FONT></P>
<P align=justify><FONT color=#0080c0 size=4><B>相信未来</B></FONT></P>
<P align=justify>　</P>
<P align=justify><FONT color=#0080c0>当蜘蛛网无情地查封了我的炉台<BR><BR>当灰烬的余烟叹息着贫困的悲哀</FONT></P>
<P align=justify><FONT color=#0080c0>我依然固执地铺平失望的灰烬</FONT></P>
<P align=justify><FONT color=#0080c0>用美丽的雪花写下：相信未来</FONT></P>
<P align=justify>　</P>
<P align=justify><FONT color=#0080c0>当我的紫葡萄化为深秋的露水</FONT></P>
<P align=justify><FONT color=#0080c0>当我的鲜花依偎在别人的情怀</FONT></P>
<P align=justify><FONT color=#0080c0>我依然固执地用凝霜的枯藤</FONT></P>
<P align=justify><FONT color=#0080c0>在凄凉的大地上写下：相信未来</FONT></P>
<P align=justify>　</P>
<P align=justify><FONT color=#0080c0>我要用手指那涌向天边的排浪</FONT></P>
<P align=justify><FONT color=#0080c0>我要用手掌那托住太阳的大海</FONT></P>
<P align=justify><FONT color=#0080c0>摇曳着曙光那枝温暖漂亮的笔杆</FONT></P>
<P align=justify><FONT color=#0080c0>用孩子的笔体写下：相信未来</FONT></P>
<P align=justify>　</P>
<P align=justify><FONT color=#0080c0>我之所以坚定地相信未来</FONT></P>
<P align=justify><FONT color=#0080c0>是我相信未来人们的眼睛</FONT></P>
<P align=justify><FONT color=#0080c0>她有拨开历史风尘的睫毛</FONT></P>
<P align=justify><FONT color=#0080c0>她有看透岁月篇章的瞳孔</FONT></P>
<P align=justify>　</P>
<P align=justify><FONT color=#0080c0>不管人们对于我们腐烂的皮肉</FONT></P>
<P align=justify><FONT color=#0080c0>那些迷途的惆怅、失败的苦痛</FONT></P>
<P align=justify><FONT color=#0080c0>是寄予感动的热泪、深切的同情</FONT></P>
<P align=justify><FONT color=#0080c0>还是给以轻蔑的微笑、辛辣的嘲讽</FONT></P>
<P align=justify>　</P>
<P align=justify><FONT color=#0080c0>我坚信人们对于我们的脊骨</FONT></P>
<P align=justify><FONT color=#0080c0>那无数次的探索、迷途、失败和成功</FONT></P>
<P align=justify><FONT color=#0080c0>一定会给予热情、客观、公正的评定</FONT></P>
<P align=justify><FONT color=#0080c0>是的，我焦急地等待着他们的评定</FONT></P>
<P align=justify>　</P>
<P align=justify><FONT color=#0080c0>朋友，坚定地相信未来吧</FONT></P>
<P align=justify><FONT color=#0080c0>相信不屈不挠的努力</FONT></P>
<P align=justify><FONT color=#0080c0>相信战胜死亡的年轻</FONT></P>
<P align=justify><FONT color=#0080c0>相信未来、热爱生命　</FONT></P>
<P align=justify><FONT color=#0080c0>(1968年 北京)</FONT></P>
<P align=justify>
<TABLE cellSpacing=0 cellPadding=0 width=600 align=center bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD width=100 height=33><FONT color=#0080c0>　</FONT></TD>
<TD width=473 height=798 rowSpan=2><FONT lang=ZH-CN face=宋体 size=3>
<P align=justify></P></FONT><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3></FONT>&nbsp;<FONT face=宋体> </FONT>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=4><B>疯狗</B></FONT></P>
<P align=justify><B><FONT lang=ZH-CN face=宋体 color=#0080c0 size=4>──致奢谈人权的人们</FONT></B></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>　</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>受够无情的戏弄之后，</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>我不再把自己当人看，</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>仿佛我成了一条疯狗，</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>漫无目的地游荡人间。</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>　</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>我还不是一条疯狗，</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>不必为饥寒去冒风险，</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>为此我希望成条疯狗，</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>更深刻地体验生存的艰难。</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>　</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>我还不如一条疯狗！</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>狗急它能跳出墙院，</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>而我只能默默地忍受，</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>我比疯狗有更多的辛酸。</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>　</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>假如我真的成条疯狗</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>就能挣脱这无情的锁链，</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>那么我将毫不迟疑地，</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>放弃所谓神圣的人权。　</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 color=#0080c0 size=3>(1978年)<BR></FONT></P></TD></TR></TBODY></TABLE></P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200802591920842</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200802591920842</guid>
    <pubDate>Fri, 25 Jan 2008 09:19:20 +0800</pubDate>
    <dcterms:modified>2008-01-25T09:24:51+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[大脚的空间 vc的开始]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200802394846484</link>
    <description><![CDATA[<div><P><A href="http://blog.vbgood.com/index.php/1834/action_viewspace_itemid_849.html">http://blog.vbgood.com/index.php/1834/action_viewspace_itemid_849.html</A></P>
<P>国外的一php空间</P>
<P><A href="http://www.jansch.nl/">http://www.jansch.nl/</A></P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200802394846484</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200802394846484</guid>
    <pubDate>Wed, 23 Jan 2008 09:48:46 +0800</pubDate>
    <dcterms:modified>2008-01-24T10:06:12+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[划出一道美丽的弧线]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/13968548200801494413908</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp; 很高兴周末能走到那个美丽的山区，那里有新鲜的空气，那里有巍峨的大山，那里有皑皑的白雪，一路的奔波劳碌很快我们到了张家口，第二天上午我们进入了滑雪场。开始了我们的旅程。</P>
<P>&nbsp;&nbsp; 滑雪本来是件高兴的事，但回来的路上，也许是灵感的再现，也许是灵魂的开窍，我忽然感觉到我们的滑雪之旅就像我们的人生，刚开始没有一个人会滑，所以给你滑雪板的同时也给你跟扶手，我们也是，我们滑的时候看着别人滑，然后自己慢慢的模仿，一步步成长，就像人生刚开始的时候都需要别人的帮助，都需要听别人说话，自己在慢慢的模仿，当然在这些过程中，我们会有无数次的摔倒，雪地里很滑的所以刚开始滑到了我们都起不来，只有怕在地上等别人来帮忙，很庆幸的是滑雪场有专门的服务人员来拉你，不过路过的人看到你摔倒也回热情的去啦你，我也在滑雪的过程中拉过别人，正如我们人生，小时候我们也是一样无阻，摔了跟头真的不知道如何再爬起来，幸好有父母为我们指引，也有老师，朋友等，他们都可以给你无私的帮助，帮助你成长。</P>
<P>&nbsp; 练习的差不多了，我们开始滑一些有坡度的小山坡，因为平直的路上是体会不到滑雪的乐趣，他们那里的坡度分好几种，大概四种吧，一种是最简单的那种，坡度大概有15度左右，而且特别段，属于那种刚开始练习的那种，我一开始也是在那里滑，毫无疑问我第一次滑在那里摔倒了，因为一旦速度快起来身体各个部位就乱了，摔倒了，这个时候依然有人去拉你，因为我们还是新手，划过几此后渐渐 的有了感觉，于是我开始怕上了那个坡度大概有30度左右，而且特别长的坡，刚开始也是在半山腰，因为太高了还是有点怕的，怕摔倒，慢慢的练习，摔倒后再爬起来无数次的练习后发现慢慢的自己能掌握自己的重心，能平衡自己了，而且摔倒的次数很少了，好几次后，登上了他的最高点，从上往上冲，滑下来时速度当然是更快，耳边的疯斯斯做响，感觉到无限的轻松，真爽，真刺激，终于有点体会到了他的乐趣，尽管有摔倒的时候但是渐渐的我自己能慢慢的怕起来，想想我们的人生不也如此，少年的时候我们也是尝试完成些新的东西，于是在不断的犯错误中成长，路上也有我们父母的，朋友的，引导帮助，慢慢的我们少犯错误，自己会慢慢的改正自己的错误了，感觉差不多的时候我和其他两人上了一个陡坡，大概有45度以上，别人都是乘索道上去的，我们逆雪怕上去的，虽然滑但我们还是艰难的怕上去的，人生也是这样，每个人的基础是不一样的，也许别的人出生好的家庭，而我们家庭不好的之能靠自己的努力去弥补这些缺失，所以即使我们的人生背景不好，不要悲哀，不要伤心，多勤奋一点一样可以和他们一样站在高点往下看，但那么陡的坡度往下真的不敢往下看，速度太快了，第一次滑的时候还爬摔倒，因为在这样的地点滑摔倒会更痛的，而且没有人会帮你的，这里不比那里人很少，一路滑下不知道摔倒了几次，于是我们放弃了，他们说有点危险，我们还是回到了刚才的滑道，几次滑过后还是感觉在那里平淡无味，没有刺激，于是我有再次一个人登上了那个45度以上的坡，这此好多了，太快了，太爽了，但最后在到达山地的时候我还是倒下了，不过比上次好多 了。</P>
<P>&nbsp;&nbsp;&nbsp; 仔细想想人生的路也不是这样，我们害怕摔倒，害怕痛苦，但我们有错失了多少美景，大部分人还是选择了第二种滑道，不太陡，而且不太容易滑到，但平静的湖面练不出优秀的棋手，如果人生也安于那样平淡无味，他将体会不到那中更加刺激的人生体验，所以不要怕摔倒，勇敢再起来，面对下一次新的挑战，用自己的勤奋去弥补自己的不足，去和他们一样尝试新的挑战。滑雪场上的转弯也许就是我们人生的十字路口，刚开始我们不会选择，有时候我们也不愿意选择，到了十字路口我们总选择那些平坦的小道，而不愿走那些铺满（jinji ）的道路，怕受伤害，其实走过那些小路后面就是鲜花大道。在陡坡上滑的时候他们总能转弯自如，因为他们摔倒过，他们不怕摔倒，最终成就了自己的梦想，看到了鲜花。</P>
<P>&nbsp;&nbsp;&nbsp; 好多人站在那里看他们滑的如果漂亮，如果帅，尽管很陡，他们还是转弯自如，滑过一道美丽的弧线，时时激起美丽的雪花，让我们啧啧轻叹，于是想像他们那样体验那种刺激，但这个时候我们的时间也是到了，人生也是这样，不要总欣赏别人如何成功，有多少财富，其实都是人家经过多次的摔倒后才成就了自己的梦想，所以不要到了晚年再有那种尝试那种成功的愿望，趁自己年轻，勇敢的去挑战，不要怕摔倒，摔倒后不算什么，年轻是我们最大的财富，最大的资本，摔倒多了才能坦然面对人生的起起伏伏，才能成就自己的梦想。</P>
<P>&nbsp;&nbsp;&nbsp; 给自己的忠告：趁年轻多多的磨练自己，不要怕摔倒，不要怕失败，努力一些你就会为自己的人生划上一道美丽的弧线，激起一片漂亮的雪花</P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/13968548200801494413908</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/13968548200801494413908</guid>
    <pubDate>Mon, 14 Jan 2008 09:44:13 +0800</pubDate>
    <dcterms:modified>2008-01-14T09:44:13+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[ 新年寄语 俞敏洪]]></title>	
    <link>http://liufabin66688.blog.163.com/blog/static/1396854820080119464175</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">面对2008年，希望大家更加进步，希望大家更加健康，希望大家更加热爱生命，更希望大家活出人生的灿烂来。</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">　　又一年匆匆忙忙地快要结束了，匆忙得来不及数一下我们的脚步，匆忙得来不及听一下我们的足音。我们开始检点自己的日子，发现岁月如流水一样偷偷滑过，我们拼命想抓住点什么，却了无痕迹。就像一片白云从空中飘过，就像一片树叶在秋天落下，2007年的日子就这样从我们身边溜走了。</P>
<P style="TEXT-INDENT: 2em">　　世界上最公平的就是日子，在一年内，没有谁的日子会比谁的多，大家都拥有365个日日夜夜。但365个日日夜夜给每一个人带来的是不同的收获和感受，不是因为日子不同，而是因为人的不同。</P>
<P style="TEXT-INDENT: 2em">　　对于生命，每个人都有自己不同的计算方式。有的人以一年挣了多少钱来衡量自己的价值，有的人以一年交了多少朋友来衡量自己的价值，有的人以一年读了多少书来衡量自己的价值，有的人以一年旅游多少地方来衡量自己的价值。但有一点是相同的，每一个人都想使自己的日子过得更加合算、更加有价值。</P>
<P style="TEXT-INDENT: 2em">　　清点一下自己的日子，也许对我们未来的岁月会有好处。让我们一起来算一算，在2007年，我们多少次抬头看过蓝天白云，多少次注视过月亮的阴晴圆缺，多少次在黑夜里数过天上的星星，多少次听过雨声风声落在屋顶的声音，如果没有，美丽的大自然对于你是不存在的。</P>
<P style="TEXT-INDENT: 2em">　　让我们再来算一算，在2007年，你有没有读过让自己感动的故事，有没有朗诵过让自己流泪的诗歌，有没有学会动人的歌曲哪怕只对自己唱，有没有写过真情的文章哪怕只让自己欣赏，如果没有，深刻的人类情感对于你是不存在的。</P>
<P style="TEXT-INDENT: 2em">　　我们还要继续算下去，在2007年，你有没有认真读过一本书使你终生受益，有没有认真做过一件事做得尽善尽美，有没有认识一个良师益友成为你的榜样，有没有面对困难或失败挺立起哪怕一次脊梁，如果没有，生命的成长对于你来说是不存在的。</P>
<P style="TEXT-INDENT: 2em">　　也许我们能够为自己找到借口，我们的工作太忙了，我们的应酬太多了，我们的处境太难了，我们的住处太吵了。但每个人的生命只有一次，生命不允许你找借口，它不会因为你有借口让你再活一次。我们要回答的问题是：生命只有一次机会，我们能够活得更好吗？</P>
<P style="TEXT-INDENT: 2em">　　面对2008年，希望大家更加进步，希望大家更加健康，希望大家更加热爱生命，更希望大家活出人生的灿烂来。</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">相关阅读：</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">　　<A href="http://blog.sina.com.cn/s/blog_4711b54e01007z3w.html">信念与激情－－俞敏洪在企业家精神论坛上的演讲</A> &nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">　　<A href="http://blog.sina.com.cn/s/blog_4711b54e01000d1m.html">不同的选择，不同的生活</A>&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">　　<A href="http://blog.sina.com.cn/s/blog_4711b54e01000cos.html">祝福你们，中国80后</A> &nbsp;</P>
<P style="TEXT-INDENT: 2em">　　<A href="http://blog.sina.com.cn/s/blog_4711b54e01000cog.html">相信未来，热爱生命</A></P>
<P style="TEXT-INDENT: 2em">　　<A href="http://blog.sina.com.cn/s/blog_4711b54e01000cgc.html">手机丢失后的生命反思</A></P>
<P style="TEXT-INDENT: 2em">　　<A href="http://blog.sina.com.cn/s/blog_4711b54e01000ceg.html">9月7日，一个属于新东方的日子</A></P>
<P style="TEXT-INDENT: 2em">　　<A href="http://blog.sina.com.cn/s/blog_4711b54e01000cdu.html">一只苍蝇</A></P>
<P style="TEXT-INDENT: 2em">　　<A href="http://blog.sina.com.cn/s/blog_4711b54e01000bp0.html">从自愿自觉到坚忍不拔</A></P>
<P style="TEXT-INDENT: 2em">　　 <A href="http://blog.sina.com.cn/s/blog_4711b54e01000bo4.html">在时间的长河中收获</A></P>
<P style="TEXT-INDENT: 2em">　　 <A href="http://blog.sina.com.cn/s/blog_4711b54e01000aqw.html">让现在的行动拥有未来的意义</A></P>
<P style="TEXT-INDENT: 2em">　　 <A href="http://blog.sina.com.cn/u/4711b54e01000aeo">剃了光头，生活反而更美好</A></P>
<P style="TEXT-INDENT: 2em">　　 <A href="http://blog.sina.com.cn/u/4711b54e01000aep">我的父亲母亲</A></P>
<P style="TEXT-INDENT: 2em">　　 <A href="http://blog.sina.com.cn/u/4711b54e01000aas">对待生命的态度</A></P>
<P style="TEXT-INDENT: 2em">　　 <A href="http://blog.sina.com.cn/u/4711b54e01000a7j">无穷的梦想无穷的路</A></P>
<P style="TEXT-INDENT: 2em">　　 <A href="http://blog.sina.com.cn/u/4711b54e01000a49">站在哈佛的讲台上</A></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">相关链接：</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">　　<A href="http://blog.sina.com.cn/m/xindongfang#sort_4">新东方课堂</A>｜<A href="http://blog.sina.com.cn/m/xindongfang#sort_6">新东方播客</A>｜<A href="http://blog.sina.com.cn/m/xindongfang#sort_7">俞敏洪文档</A>｜<A href="http://blog.sina.com.cn/m/xindongfang#sort_10">王　强文选</A>｜<A href="http://blog.sina.com.cn/m/xindongfang#sort_8">徐小平专栏</A></P>
<P style="TEXT-INDENT: 2em">　　<A href="http://blog.sina.com.cn/m/xindongfang#sort_9">众名师印象</A>｜<A href="http://blog.sina.com.cn/m/xindongfang#sort_5">游学新东方</A>｜<A href="http://blog.sina.com.cn/m/xindongfang#sort_1">东方大事记</A>｜<A href="http://blog.sina.com.cn/m/xindongfang#sort_2">聚焦新东方</A>｜<A href="http://blog.sina.com.cn/m/xindongfang#sort_3">新东方文化</A></P>
<P style="TEXT-INDENT: 2em">文章引用自：<A href=""></A> </P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">分类：<A href="http://blog.sina.com.cn/u/1192342862#cmd:asc(http://blog.sina.com.cn/s/alist_1192342862_7_1.html)">【C】【俞敏洪文</A></P>
<P style="TEXT-INDENT: 2em"><A href="http://blog.sina.com.cn/s/comment_4711b54e010080yl_1.html">评论(44)</A> <A href="http://my.blog.sina.com.cn/writing/scriber/article_add_by_quote.php?blog_id=4711b54e010080yl">引用</A> <A href="http://blog.sina.com.cn/s/reader_4711b54e010080yl.html">阅读(11365)</A> <A href="http://blog.sina.com.cn/s/circleinfo_4711b54e010080yl_1.html">圈子</A> <A href="http://my.blog.sina.com.cn/writing/scriber/article_edit.php?mode=1&amp;blog_id=4711b54e010080yl">编辑</A> <A href="http://blog.sina.com.cn/s/print_4711b54e010080yl.html">打印</A> 有奖举报</A> </P>
<P style="TEXT-INDENT: 2em"><A href="http://blog.sina.com.cn/s/blog_4711b54e01007z4w.html">前一篇：那些个圣诞,&nbsp;我们在一起</A></P>
<P style="TEXT-INDENT: 2em"><A href="http://blog.sina.com.cn/s/blog_4711b54e010082nx.html">后一篇：又是辞旧迎新时</A></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[玉树临风]]></author>
	    <comments>http://liufabin66688.blog.163.com/blog/static/1396854820080119464175</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://liufabin66688.blog.163.com/blog/static/1396854820080119464175</guid>
    <pubDate>Fri, 11 Jan 2008 09:46:04 +0800</pubDate>
    <dcterms:modified>2008-01-11T09:46:04+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  未命名]]></title>	
    <link>http://img.blog.163.com/photo/MHA8ylHdROAoGREGWdndhw==/1975672861532492363.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/MHA8ylHdROAoGREGWdndhw==/1975672861532492363.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/MHA8ylHdROAoGREGWdndhw==/1975672861532492363.jpg" border="0" width="205" height="240"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/MHA8ylHdROAoGREGWdndhw==/1975672861532492363.jpg</guid>
    <pubDate>Fri, 15 Feb 2008 09:59:35 +0800</pubDate>
    <dcterms:modified>2008-02-15T09:59:35+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  dd]]></title>	
    <link>http://img.blog.163.com/photo/qTY4adxCyV2TyKWPNIgrPA==/1975672861532492360.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/qTY4adxCyV2TyKWPNIgrPA==/1975672861532492360.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/qTY4adxCyV2TyKWPNIgrPA==/1975672861532492360.jpg" border="0" width="203" height="240"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/qTY4adxCyV2TyKWPNIgrPA==/1975672861532492360.jpg</guid>
    <pubDate>Fri, 15 Feb 2008 09:59:35 +0800</pubDate>
    <dcterms:modified>2008-02-15T09:59:35+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  202208-01-22-03]]></title>	
    <link>http://img.blog.163.com/photo/PnUP_OEjN2pH3Z5kS5ugfQ==/2594917810295871658.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/PnUP_OEjN2pH3Z5kS5ugfQ==/2594917810295871658.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/PnUP_OEjN2pH3Z5kS5ugfQ==/2594917810295871658.jpg" border="0" width="240" height="180"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/PnUP_OEjN2pH3Z5kS5ugfQ==/2594917810295871658.jpg</guid>
    <pubDate>Tue, 22 Jan 2008 18:52:14 +0800</pubDate>
    <dcterms:modified>2008-01-22T18:52:14+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  2008-01-www22-12]]></title>	
    <link>http://img.blog.163.com/photo/7LB9txXzIa-gwl95pNv6ug==/2594917810295871655.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/7LB9txXzIa-gwl95pNv6ug==/2594917810295871655.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/7LB9txXzIa-gwl95pNv6ug==/2594917810295871655.jpg" border="0" width="240" height="180"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/7LB9txXzIa-gwl95pNv6ug==/2594917810295871655.jpg</guid>
    <pubDate>Tue, 22 Jan 2008 18:52:14 +0800</pubDate>
    <dcterms:modified>2008-01-22T18:52:14+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  2008-01-www22-12]]></title>	
    <link>http://img.blog.163.com/photo/7LB9txXzIa-gwl95pNv6ug==/2594917810295871655.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/7LB9txXzIa-gwl95pNv6ug==/2594917810295871655.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/7LB9txXzIa-gwl95pNv6ug==/2594917810295871655.jpg" border="0" width="240" height="180"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/7LB9txXzIa-gwl95pNv6ug==/2594917810295871655.jpg</guid>
    <pubDate>Tue, 22 Jan 2008 18:52:14 +0800</pubDate>
    <dcterms:modified>2008-01-22T18:52:14+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  2008-01-22222-03]]></title>	
    <link>http://img.blog.163.com/photo/U1JVsVKnBHt27kx012Yj6Q==/2594917810295871652.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/U1JVsVKnBHt27kx012Yj6Q==/2594917810295871652.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/U1JVsVKnBHt27kx012Yj6Q==/2594917810295871652.jpg" border="0" width="240" height="180"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/U1JVsVKnBHt27kx012Yj6Q==/2594917810295871652.jpg</guid>
    <pubDate>Tue, 22 Jan 2008 18:52:14 +0800</pubDate>
    <dcterms:modified>2008-01-22T18:52:14+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  2008-01-2ww2-09]]></title>	
    <link>http://img.blog.163.com/photo/ydqlz4kkaWvHl_tUXuujCA==/2594917810295871649.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/ydqlz4kkaWvHl_tUXuujCA==/2594917810295871649.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/ydqlz4kkaWvHl_tUXuujCA==/2594917810295871649.jpg" border="0" width="240" height="180"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/ydqlz4kkaWvHl_tUXuujCA==/2594917810295871649.jpg</guid>
    <pubDate>Tue, 22 Jan 2008 18:52:14 +0800</pubDate>
    <dcterms:modified>2008-01-22T18:52:14+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  2008-01-2ttt2-01]]></title>	
    <link>http://img.blog.163.com/photo/hTBAl3pG6oHOlQFUeHN0Mg==/2594917810295871646.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/hTBAl3pG6oHOlQFUeHN0Mg==/2594917810295871646.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/hTBAl3pG6oHOlQFUeHN0Mg==/2594917810295871646.jpg" border="0" width="240" height="180"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/hTBAl3pG6oHOlQFUeHN0Mg==/2594917810295871646.jpg</guid>
    <pubDate>Tue, 22 Jan 2008 18:52:14 +0800</pubDate>
    <dcterms:modified>2008-01-22T18:52:14+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  DSC01933]]></title>	
    <link>http://img.blog.163.com/photo/hVBXwVuFLSEev6D1L56lfg==/2296272860005957839.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/hVBXwVuFLSEev6D1L56lfg==/2296272860005957839.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/hVBXwVuFLSEev6D1L56lfg==/2296272860005957839.jpg" border="0" width="240" height="180"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/hVBXwVuFLSEev6D1L56lfg==/2296272860005957839.jpg</guid>
    <pubDate>Tue, 25 Dec 2007 08:30:53 +0800</pubDate>
    <dcterms:modified>2007-12-25T08:30:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  DSC01929]]></title>	
    <link>http://img.blog.163.com/photo/0P25BWXwZZUdt4qzG0JcDA==/4286300945350139746.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/0P25BWXwZZUdt4qzG0JcDA==/4286300945350139746.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/0P25BWXwZZUdt4qzG0JcDA==/4286300945350139746.jpg" border="0" width="240" height="180"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/0P25BWXwZZUdt4qzG0JcDA==/4286300945350139746.jpg</guid>
    <pubDate>Tue, 25 Dec 2007 08:30:53 +0800</pubDate>
    <dcterms:modified>2007-12-25T08:30:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  DSC01934]]></title>	
    <link>http://img.blog.163.com/photo/AR4mw3-0VaqfDdb-ENuQYg==/2296272860005957831.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/AR4mw3-0VaqfDdb-ENuQYg==/2296272860005957831.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/AR4mw3-0VaqfDdb-ENuQYg==/2296272860005957831.jpg" border="0" width="240" height="180"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/AR4mw3-0VaqfDdb-ENuQYg==/2296272860005957831.jpg</guid>
    <pubDate>Tue, 25 Dec 2007 08:30:53 +0800</pubDate>
    <dcterms:modified>2007-12-25T08:30:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  DSC01936]]></title>	
    <link>http://img.blog.163.com/photo/Y6ix4kPeQH9NbieKqhuD0w==/4286300945350139737.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/Y6ix4kPeQH9NbieKqhuD0w==/4286300945350139737.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/Y6ix4kPeQH9NbieKqhuD0w==/4286300945350139737.jpg" border="0" width="240" height="180"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/Y6ix4kPeQH9NbieKqhuD0w==/4286300945350139737.jpg</guid>
    <pubDate>Tue, 25 Dec 2007 08:30:53 +0800</pubDate>
    <dcterms:modified>2007-12-25T08:30:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  DSC01931]]></title>	
    <link>http://img.blog.163.com/photo/zIbqGHu6AJeARkcCPN_p4A==/1148699379956705209.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/zIbqGHu6AJeARkcCPN_p4A==/1148699379956705209.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/zIbqGHu6AJeARkcCPN_p4A==/1148699379956705209.jpg" border="0" width="240" height="180"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/zIbqGHu6AJeARkcCPN_p4A==/1148699379956705209.jpg</guid>
    <pubDate>Tue, 25 Dec 2007 08:30:53 +0800</pubDate>
    <dcterms:modified>2007-12-25T08:30:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  DSC01920]]></title>	
    <link>http://img.blog.163.com/photo/N7kmNZMSzdTsHZUvrbFSOQ==/1148699379956705208.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/N7kmNZMSzdTsHZUvrbFSOQ==/1148699379956705208.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/N7kmNZMSzdTsHZUvrbFSOQ==/1148699379956705208.jpg" border="0" width="240" height="180"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/N7kmNZMSzdTsHZUvrbFSOQ==/1148699379956705208.jpg</guid>
    <pubDate>Tue, 25 Dec 2007 08:30:53 +0800</pubDate>
    <dcterms:modified>2007-12-25T08:30:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  L838596776443PUP]]></title>	
    <link>http://img.blog.163.com/photo/0Lw9O-AB2flDNmBRMGJ0Xg==/4861354322769925614.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/0Lw9O-AB2flDNmBRMGJ0Xg==/4861354322769925614.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/0Lw9O-AB2flDNmBRMGJ0Xg==/4861354322769925614.jpg" border="0" width="240" height="192"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/0Lw9O-AB2flDNmBRMGJ0Xg==/4861354322769925614.jpg</guid>
    <pubDate>Sat, 22 Sep 2007 03:09:42 +0800</pubDate>
    <dcterms:modified>2007-09-22T03:09:42+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  未命名]]></title>	
    <link>http://img.blog.163.com/photo/s6GssNH-8XBPiJ-20QTA0g==/4861354322769925606.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/s6GssNH-8XBPiJ-20QTA0g==/4861354322769925606.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/s6GssNH-8XBPiJ-20QTA0g==/4861354322769925606.jpg" border="0" width="240" height="121"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/s6GssNH-8XBPiJ-20QTA0g==/4861354322769925606.jpg</guid>
    <pubDate>Sat, 22 Sep 2007 03:08:21 +0800</pubDate>
    <dcterms:modified>2007-09-22T03:08:21+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  t1_03]]></title>	
    <link>http://img.blog.163.com/photo/a4oU8ER8PUMDzsN1imoShw==/4861354322769925604.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/a4oU8ER8PUMDzsN1imoShw==/4861354322769925604.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/a4oU8ER8PUMDzsN1imoShw==/4861354322769925604.jpg" border="0" width="5" height="31"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/a4oU8ER8PUMDzsN1imoShw==/4861354322769925604.jpg</guid>
    <pubDate>Sat, 22 Sep 2007 03:08:21 +0800</pubDate>
    <dcterms:modified>2007-09-22T03:08:21+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  8888]]></title>	
    <link>http://img.blog.163.com/photo/FRzWEdTdo4Ps68H-Xpis3Q==/5114681801809520135.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/FRzWEdTdo4Ps68H-Xpis3Q==/5114681801809520135.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/FRzWEdTdo4Ps68H-Xpis3Q==/5114681801809520135.jpg" border="0" width="240" height="186"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/FRzWEdTdo4Ps68H-Xpis3Q==/5114681801809520135.jpg</guid>
    <pubDate>Tue, 4 Sep 2007 11:45:03 +0800</pubDate>
    <dcterms:modified>2007-09-04T11:45:03+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  照片 128]]></title>	
    <link>http://img.blog.163.com/photo/HwDyFx0Sh3Wl3QWGowXqAQ==/429249339484679630.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/HwDyFx0Sh3Wl3QWGowXqAQ==/429249339484679630.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/HwDyFx0Sh3Wl3QWGowXqAQ==/429249339484679630.jpg" border="0" width="179" height="240"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/HwDyFx0Sh3Wl3QWGowXqAQ==/429249339484679630.jpg</guid>
    <pubDate>Sun, 13 May 2007 13:40:55 +0800</pubDate>
    <dcterms:modified>2007-05-13T13:40:55+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  照片 127]]></title>	
    <link>http://img.blog.163.com/photo/3Bx4cisLcDZfgBfmXYJJsw==/423619839950463638.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/3Bx4cisLcDZfgBfmXYJJsw==/423619839950463638.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/3Bx4cisLcDZfgBfmXYJJsw==/423619839950463638.jpg" border="0" width="240" height="180"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/3Bx4cisLcDZfgBfmXYJJsw==/423619839950463638.jpg</guid>
    <pubDate>Sun, 13 May 2007 13:40:54 +0800</pubDate>
    <dcterms:modified>2007-05-13T13:40:54+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[web:  .NET学习]]></title>	
    <link>http://liufabin66688.blog.163.com/prevResource.do?selectId=fks!087070086086088074092083074066087095087075081082094</link>
    <description><![CDATA[<ul>
	<li>
	<a href="http://www.vchelp.net/blog/wyy/" target="_blank">vc的</a>
	: vc的</li>

	<li>
	<a href="http://blog.csdn.net/shfabjc/" target="_blank">小熊的</a>
	: 可以</li>

	<li>
	<a href="http://www.cnblogs.com/mgod/" target="_blank">学习.net的</a>
	: 博客</li>
</ul>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">collection/static/fks!087070086086088074092083074066087095087075081082094</guid>
    <pubDate>Thu, 19 Jul 2007 16:07:03 +0800</pubDate>
    <dcterms:modified>2007-07-19T16:07:03+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[web:  文学]]></title>	
    <link>http://liufabin66688.blog.163.com/prevResource.do?selectId=fks!087065082081087068084083074066087095087075081082094</link>
    <description><![CDATA[<ul>
	<li>
	<a href="http://0106551513.blog.163.com" target="_blank">伤感的恋人 的网易博客</a>
	: C#网络编程概述</li>

	<li>
	<a href="http://ftw118.blog.163.com" target="_blank">ftw118 的网易博客</a>
	: ftw118 的网易博客C#网络编程</li>

	<li>
	<a href="http://kevindash.blog.163.com" target="_blank">纤尘 的网易博客</a>
	: 大量的学习c#的资料</li>

	<li>
	<a href="http://blog.163.com/tsdzqq@126" target="_blank">小郎 的网易博客</a>
	: 小郎 的网易博客 c#技巧</li>

	<li>
	<a href="http://gaomenggaici.blog.163.com" target="_blank">高猛 的网易博客</a>
	: 高猛 的网易博客</li>

	<li>
	<a href="http://maosea0125.blog.163.com" target="_blank">潇洒雨鞋 的网易博客</a>
	: 潇洒雨鞋 的网易博客</li>

	<li>
	<a href="http://blog.sina.com.cn/u/1230313060" target="_blank">化蝶的BLOG</a>
	: 一曲粱祝音,惊为天上人.</li>
</ul>]]></description>
	    <author><![CDATA[liufabin66688]]></author>
    <guid isPermaLink="false">collection/static/fks!087065082081087068084083074066087095087075081082094</guid>
    <pubDate>Fri, 18 May 2007 19:59:51 +0800</pubDate>
    <dcterms:modified>2007-05-18T19:59:51+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[web:  友情网址]]></title>	
    <link>http://liufabin66688.blog.163.com/prevResource.do?selectId=fks!087066082083088067084085074066087095087075081082094</link>
    <description><![CDATA[<ul>
	<li>
	<a href="http://www.ideagrace.com/blog/" target="_blank">好的php</a>
	: 不错的</li>

	<li>
	<a href="http://www.seoip.net/seoblog.htm" target="_blank">seo</a>
	: 学习</li>

	<li>
	<a href="http://our.uni.cc/blog/users/nana/index.php/show/one/id/10" target="_blank">zf</a>
	: zf</li>

	<li>
	<a href="http://blog.sina.com.cn/cuikai" target="_blank">web design</a>
	: ck</li>

	<li>
	<a href="http://blog.sina.com.cn/gxllingblog" target="_blank">郭小玲</a>
	: 淑女</li>

	<li>
	<a href="http://forums.devshed.com/php-development-5/" target="_blank">老外的php论坛</a>
	: 有c语言的</li>

	<li>
	<a href="http://simon.net.nz/articles/process-a-url-query-string-in-php/" target="_blank">eng</a>
	: 老外blog</li>

	<li>
	<a href="http://blog.csdn.net/baggio785/archive/2006/09/12/1215172.aspx" target="_blank">讲大型的</a>
	: 比较深</li>

	<li>
	<a href="http://www.ccvita.com/index.php/category/php" target="_blank">玉面修罗</a>
	: 村里的</li>

	<li>
	<a href="http://www.quickshare.com.cn/post/windowsXP-php-Apache-Mysql-Zend-Configuration.php" target="_blank">有空看看</a>
	: 八错</li>

	<li>
	<a href="http://www.phpobject.net/blog/read.php?118" target="_blank">牛淫</a>
	: 牛</li>

	<li>
	<a href="http://blog.csdn.net/heiyeshuwu/archive/2006/11/13/1380838.aspx" target="_blank">黑夜明灯</a>
	: memcached的解析</li>

	<l