<?xml version="1.0" encoding="utf-8"?>
            <rss version="2.0">
                <channel>
                    <title>Keep Rolling</title>
                    <link>http://meckmeck.cn/rss</link>
                    <description>All about Meck</description>
					<webMaster>coolzi1988@qq.com</webMaster>
            <item>
				<title>Ubuntu 9.10 编译安装Firefox 3.6 - [Ubuntu/Linux]</title>
				<link>http://meckmeck.cn/blog?id=114</link>
				<description>
				<![CDATA[
				<p>综合了网上的方法，和官方文档，花了3个多小时，终于编译安装成功，內牛满面<img alt="Cry" src="http://meckmeck.cn/templates/xheditor/xheditor_emot/cry.gif" />。</p><p><strong>1.准备编译环境和依赖</strong><br />sudo apt-get build-dep firefox<br />sudo apt-get install mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libxt-dev libiw-dev mesa-common-dev autoconf2.13</p><p><strong>2.下载源码</strong><br /><a target="_blank" href="http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.6/source/firefox-3.6.source.tar.bz2">http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.6/source/firefox-3.6.source.tar.bz2</a></p><p><strong>3.准备编译配置文件</strong><br />在解压出来的源代码根目录mozilla-1.9.2下新建文件"mozconfig"(不包括引号)，输入以下内容：<br />mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-ff-release<br />mk_add_options MOZ_MAKE_FLAGS="-j4"</p><p><strong>4.编译制作安装包<br /></strong>在源代码根目录mozilla-1.9.2下执行make -f client.mk开始编译。编译的过程有点漫长，可以先干点别的事。编译完成后，会在源代码根目录mozilla-1.9.2下生成一个objdir-ff-release文件夹。在objdir-ff-release执行make package命令，会在当前目录的dist目录下生成名为firefox-3.6.en-US.linux-x86_64.tar.bz2的安装包。</p><p><strong>5.安装</strong><br />执行命令sudo tar jxf firefox-3.6.en-US.linux-x86_64.tar.bz2 -C /opt，把firefox安装到/opt目录（当然也可以换成你喜欢的其他目录）下，然后sudo ln -sf /opt/firefox/firefox /usr/bin/firefox更新符号连接。</p><p>编译安装完毕。flash player也没有任何问题。<br /></p>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Tue, 26 Jan 2010 23:58:39 GMT)</pubDate>
          </item>
		<item>
				<title>无聊～记一下～ - [滑板]</title>
				<link>http://meckmeck.cn/blog?id=113</link>
				<description>
				<![CDATA[
				<p>boiling<br />bk<br />shox<br />justice<br />symbolic<br />bk<br />justice<br />dust<br />justice<br />chinaskateboards.cn<br /></p>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Wed, 25 Nov 2009 23:53:41 GMT)</pubDate>
          </item>
		<item>
				<title>【GreaseMonkey脚本】在豆瓣任何页面使用我说 - [Javascript]</title>
				<link>http://meckmeck.cn/blog?id=112</link>
				<description>
				<![CDATA[
				<p>预览：<a href="http://s3.amazonaws.com/uso_ss/3788/large.png?1257361367" target="_blank" rel="nofollow">http://s3.amazonaws.<wbr>com/uso_ss/3788/larg<wbr>e.png?1257361367</wbr></wbr></a>
<br />
<br />安装地址：<a href="http://userscripts.org/scripts/show/61245" target="_blank" rel="nofollow">http://userscripts.o<wbr>rg/scripts/show/6124<wbr>5</wbr></wbr></a>
<br />
<br />刚学的JS，渣代码、无技术，高手请无视。
<br />实现不了异步发送数据（请高手赐教），所以提交我说后都会跳到友邻页面，会想办法解决的。
<br />暂时这样。</p>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Wed, 04 Nov 2009 05:21:53 GMT)</pubDate>
          </item>
		<item>
				<title>ECMAScript如何定义类或对象 - [Javascript]</title>
				<link>http://meckmeck.cn/blog?id=111</link>
				<description>
				<![CDATA[
				<p>1.工厂方式</p>
<pre class="brush: c-sharp;">    function createCar(sColor, iDoors, iMpg) {
	var oTempCar = new Object;
	oTempCar.color = sColor;
	oTempCar.doors = iDoors;
	oTempCar.mpg = iMpg;
	oTempCar.showColor = function () {
	    alert(this.color);
	};
	
	return oTempCar;
    }
    
    var oCar = createCar("red", 4, 23);
    oCar.showColor();
</pre>
<p>2.构造函数方式<br />构造函数内部没有创建对象，而是使用this关键词。使用new运算调用构造函数时，在执行第一行代码前先创建一个对象，只有用this才能访问该对象。然后可以直接赋予this属性，默认情况下是构造函数的返回值（不必明确使用return)。<br /></p>
<pre class="brush: c-sharp;">function Car(sColor, iDoors, iMpg) {
    this.color = sColor;
    this.doors = iDoors;
    this.mpg = iMpg;
    this.showColor = function () {
	alert(this.color)
    };
}
var oCar = new Car("red", 4, 23);
oCar.showColor();</pre>
<p>3.原型方式</p>
<pre class="brush: c-sharp;">function Car() {
}
Car.prototype.color = "red";
Car.prototype.doors = 4;
Car.prototype.mpg = 23;
Car.prototype.showColor = function () {
    alert(this.color);
};
var oCar = new Car();
oCar.showColor();
</pre>
<p>4.混合构造函数/原型方式</p>
<pre class="brush: c-sharp;">function Car(sColor, iDoors, iMpg) {
    this.color = sColor;
    this.doors = iDoors;
    this.mpg = iMpg;
    this.drivers = new Array("Meck", "Ava");
}
Car.prototype.showColor = function () {
    alert(this.color);
};
var oCar = new Car("red", 4, 23);
oCar.drivers.push("Matt");
alert(oCar.drivers);
</pre>
<p>5.动态原型方法</p>
<pre class="brush: c-sharp;">
function Car(sColor, iDoors, iMpg) {
    this.color = sColor;
    this.doors = iDoors;
    this.mpg = iMpg;
    this.drivers = new Array("Meck", "Ava");

	if (typeof Car._initialized == "undefined") {
	    Car.prototype.showColor = function () {
		alert(this.color);
	    };
	}

	Car._initialized = true;
}

oCar = new Car("red", 4, 23);
oCar.showColor();
</pre>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Sun, 27 Sep 2009 02:23:11 GMT)</pubDate>
          </item>
		<item>
				<title>艾未未工作室《老妈蹄花》 - [瞎折腾]</title>
				<link>http://meckmeck.cn/blog?id=105</link>
				<description>
				<![CDATA[
				<p>本来只想扔到火兔上算了，没想到被河蟹了，怪不得火兔能原地复活。</p><p>以下内容转至罗永浩的博客http://www.luoyonghao.net/blogs/luoyonghao/archives/134026.aspx</p><div class="EntryBody">
                    <p style="text-align: left;"><strong>艾未未工作室《老妈蹄花》发布的初始版</strong><br /> <br /> 文件格式：mp4，尺寸：586.18 MB<br /> <br /> emule、电骡或迅雷下载: <a href="http://is.gd/2RmEH" target="_blank">http://is.gd/2RmEH </a>（<span style="color:#f10b00;">我翻墙过去是404</span>），原地址：<br /> <br /> ed2k://|file|%E8%80%81%E5%A6%88%E8%B9%84%E8%8A%B1.mp4|614659356|FFF422F22E693EB55ACAEA8ECBE53E95|/<br /> <br /> 其他下载地址：<br /> <br /> <a href="http://www.rayfile.com/zh-cn/files/283161ee-986f-11de-bd30-0014221f469f/">http://www.rayfile.com/zh-cn/files/283161ee-986f-11de-bd30-0014221f469f/</a>（<span style="color:#f10b00;">已河蟹</span>）<br /> <br /> <a href="http://www.rayfile.com/zh-cn/files/9537eec5-9850-11de-9284-0014221b798a/">http://www.rayfile.com/zh-cn/files/9537eec5-9850-11de-9284-0014221b798a/</a>（<span style="color:#f10b00;">已河蟹</span>）<br /> <br /> <a href="http://www.damipan.com/file/3NowKu7.html">http://www.damipan.com/file/3NowKu7.html</a>（<span style="color:#f10b00;">需翻墙</span>）<br /> <br /> <a href="http://d.namipan.com/d/af2a65b7ed6be4577714b1ced64537b2f63956b21cf5a224">http://d.namipan.com/d/af2a65b7ed6be4577714b1ced64537b2f63956b21cf5a224</a>（<span style="color:#f10b00;">已河蟹</span>）<br /> <br /> <br /> <strong>《老妈蹄花》北风压缩版</strong><br /> <br /> 文件格式：flv，尺寸：180 MB<br /> <br /> emule、电骡或迅雷下载: <a href="http://is.gd/2PSh4" target="_blank">http://is.gd/2PSh4</a> （<span style="color:#f10b00;">也是404</span>），原地址：<br /> <br />
ed2k://|file|%E8%80%81%E5%A6%88%E8%B9%84%E8%8A%B1.flv|184560119|C777A1D89209809879EDB5AF83A547BB|h=HSNOSZFB54CAX4LSMSGEWYK27IRARIXT|/<br /> <br /> 在线播放：<br /> <br /> Youtube<br /> <br /> 分段播放：<a href="http://www.youtube.com/user/wenyunchao">http://www.youtube.com/user/wenyunchao</a>（<span style="color:#f10b00;">需翻墙</span>）<br /> <br /> 播放列表：<a href="http://bit.ly/13fokM">http://bit.ly/13fokM </a>（<span style="color:#f10b00;">需翻墙</span>）</p></div>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Fri, 18 Sep 2009 17:22:31 GMT)</pubDate>
          </item>
		<item>
				<title>改版了 - [瞎折腾]</title>
				<link>http://meckmeck.cn/blog?id=104</link>
				<description>
				<![CDATA[
				<p>首页改成了微博客，因为长篇大论的日志写的少，通过自动抓取豆瓣跟火兔的内容更新。不过空间好像不支持定时抓取，一运行就出错。</p><p>完善了后台。</p><p>另外页面不再支持IE6,如果是IE6访问呢的话会严重错位，右下角会弹出窗口要求升级浏览器。</p><p>暂时这样。</p>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Mon, 14 Sep 2009 02:07:12 GMT)</pubDate>
          </item>
		<item>
				<title>英文环境下的中文字体设置 - [Ubuntu/Linux]</title>
				<link>http://meckmeck.cn/blog?id=102</link>
				<description>
				<![CDATA[
				<p>换成英文环境后发现firefox里的字体都变了，虽然在ff里强制把所有字体都设置成了文泉译，但是却不能显示。以下是解决办法： <br />在/etc/fonts/conf.d 里面加上3 个文件的链接：
<pre class="brush: c-sharp;">
cd /etc/fonts/conf.d/
sudo ln -s /etc/fonts/conf.avail/29-language-selector-zh.conf
sudo ln -s /etc/fonts/conf.avail/69-language-selector-zh-cn.conf
sudo ln -s /etc/fonts/conf.avail/99-language-selector-zh.conf
</pre>
注销！ PS.我无语，又发现wine的软件中文显示又一塌糊涂。。。。 </p>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Wed, 19 Aug 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>折腾的linux输入法 - [Ubuntu/Linux]</title>
				<link>http://meckmeck.cn/blog?id=101</link>
				<description>
				<![CDATA[
				今天把系统换成了英文界面<br>重启后，发现ibus不能用了，终端输入sudo  im-switch -c却没发现有ibus。到ubuntu论坛上看了下。按别人的说法试了下不加sudo,成了。<br>注销，又发现ibus不能在QQ和fetion直接用快捷键呼出了，要右键选择输入法才行。继续找论坛，解决是：<br>1、在终端中输入“GTK_IM_MODULE=xim XMODIFIERS="@im=ibus" eva ”，即可正常调用，不足之处是必须开个终端窗口。<br>2、系统-首选项-主菜单，找到“eva”这一项，编辑“属性”，在“命令”一栏中原有命令的前面加入“env GTK_IM_MODULE=xim XMODIFIERS="@im=ibus" ”，（注意去掉最外侧的引号）以后点击菜单中的eva直接执行就行了。<br>继续注销，又发现用管理员权限打开文档的时候又不能调用输入法，这个我以前好像没注意过，不知道以前是不是这样，反正不爽。<br>卸载ibus，上scim,又发现scim不能光标跟随。。。继续看论坛。。。。<br>解决方法：<br> 1、sudo gedit /etc/X11/xinit/xinput.d/scim
<br>         2、将默认的 GTK_IM_MODULE=scim（这里也有可能是GTK_IM_MODULE=xim） 修改为 GTK_IM_MODULE="scim-bridge"。保存退出.       
<br>         3、在scim输入法中进行了如下设定：
<br>                scim设置－&gt;全局设置－&gt;将预编辑字符串嵌入到客户端中 前的勾去掉
<br>                scim设置-&gt;gtk-&gt;嵌入式候选词标的勾去掉.
<br>         4、重启scim<br>继续搜索为什么不能在管理员权限调用输入法，又发现这个<b>http://tinyurl.com/mt5kqt</b><br>先记到这，明天再折腾。<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Tue, 18 Aug 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>这次真歇B了 - [瞎折腾]</title>
				<link>http://meckmeck.cn/blog?id=100</link>
				<description>
				<![CDATA[
				<P>就为了搞firefox-3.5启动不了的问题，今晚上一不小心，把系统里的各种软件包删了一大堆，啥都做不了。不会又重装吧，还是拿live cd重新安装这些包？明天再折腾。</P>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Tue, 11 Aug 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>这个有点郁闷啊 - [瞎折腾]</title>
				<link>http://meckmeck.cn/blog?id=99</link>
				<description>
				<![CDATA[
				用公司电脑下了东西，拖到自己电脑上速度跟下载速度差不多。。。
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Tue, 04 Aug 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>Problem2 - 求4000000以内斐波那契数列中的偶数之和 - [Project Euler]</title>
				<link>http://meckmeck.cn/blog?id=97</link>
				<description>
				<![CDATA[
				<span style="font-weight: bold;">Problem:<br></span>
<p>Each new term in the Fibonacci sequence is generated by adding the
previous two terms. By starting with 1 and 2, the first 10 terms will
be:</p>
<p style="text-align: center;">1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...</p>
<p>Find the sum of all the even-valued terms in the sequence which do not exceed four million.</p><span style="font-weight: bold;">Code:</span><br><?php<br>set_time_limit(0);<br>function Fibonacci($i) {<br>    if ($i < 0) return( 0 );<br>    if ($i < 2) return( $i );<br>    $n = Fibonacci($i-1) + Fibonacci($i-2);<br>    return $n;<br>}<br>for ($j = 2; ($k = Fibonacci($j)) < 4000000; $j++) {<br>    if ($k % 2 == 0) {<br>        $sum+=$k;<br>    }<br>}<br>echo $sum;<br>?><br><span style="font-weight: bold;"><p>Answer:</p></span>4613732<p></p>果然需要练习啊，首先是斐波那契数列都想了好一会，然后写出来的东西运行超时。= =！所以前面加了set_time_limit(0)。好吧来看看别人的代码:<br><?php<br>$x = 0;<br>$f1 = 1;<br>$f2 = 2;<br>for ($i = 1; ; $i++) {<br>    if ($f2 >= 4000000) {<br>        break;<br>    }<br><br>    $ftemp = $f1 + $f2;<br>    $f1 = $f2;<br>    $f2 = $ftemp;<br>    if($f1 % 2 == 0) {<br>        $x += $f1;<br>    }<br>}<br>echo $x;<br>?><br>这个一下就算出来了，这是为什么呢，google之：<br>递归是子程序调用，程序调用要耗费很多空间和时间<span style="font-family: monospace;">，</span>每递归一次就要开辟一次内存用于存放数据，而循环则不需要每次都开辟内存。 几乎任何时候，对同样问题的求解，循环/迭代都比递归有效率得多。但递归往往思路清晰,算法简单明了,也就是写代码效率高。<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Wed, 22 Jul 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>Problem1 - 求1000以内3、5倍数的自然数之和 - [Project Euler]</title>
				<link>http://meckmeck.cn/blog?id=96</link>
				<description>
				<![CDATA[
				<p><span style="font-weight: bold;">Problem:</span><br></p><p>If we list all the natural numbers below 10 that are multiples of 3
or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.</p>
<p>Find the sum of all the multiples of 3 or 5 below 1000.</p>
<span style="font-weight: bold;">Code:</span><br>&lt;?php<br>for($i =1; $i &lt; 1000; $i++) {<br>&nbsp;&nbsp; &nbsp;if ($i % 3 == 0 || $i % 5 == 0 ) {<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$j+=$i;<br>&nbsp;&nbsp; &nbsp;}<br>}<br>echo $j;<br>?&gt;<br><span style="font-weight: bold;">Answer:
</span><br>				
233168<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Wed, 22 Jul 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>发痴在 - [生活嘛]</title>
				<link>http://meckmeck.cn/blog?id=95</link>
				<description>
				<![CDATA[
				<P>你麻痹今天访问picasa的时候发现picasa已经半瘫了，从picasa链出来的图片也都无法显示。草泥马的GFW。<BR><IMG src="http://meckmeck.cn/upload/image/200907161213177984.jpg"></P>
<P>估计reader也危险，因为也能看到他们不愿让人看到的东西。这可如何是好！！！<BR></P>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Wed, 15 Jul 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>宁波滑板网 - [滑板]</title>
				<link>http://meckmeck.cn/blog?id=94</link>
				<description>
				<![CDATA[
				<a href="http://www.nbsk8.com" target="_ablank">http://www.nbsk8.com</a><br>还真烦啊，缝缝补补还得有的弄弄类~<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Mon, 13 Jul 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>啊，我心神不宁 - [生活嘛]</title>
				<link>http://meckmeck.cn/blog?id=93</link>
				<description>
				<![CDATA[
				心里有太多想法，很多委屈。理想的生活还没实现一点。啊，我又失眠了！！！
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Sun, 12 Jul 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>近日感慨 - [瞎折腾]</title>
				<link>http://meckmeck.cn/blog?id=92</link>
				<description>
				<![CDATA[
				IE去死去死去死去死去死去死去死去死去死去死去死去死！！！！！！！！！！<br><br>支持Google干倒微软！！！！！！！！！！！！<br><br>有这样的ZF葡萄干就该独立！！！！<br><br>发言完毕！<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Wed, 08 Jul 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>15分钟使用CakePHP创建一个简单的博客（三） - [PHP]</title>
				<link>http://meckmeck.cn/blog?id=91</link>
				<description>
				<![CDATA[
				既然要看文档为什么不看英文文档呢？所以自己翻译了CakePHP手册里的这篇文章，翻得很烂，权当自己学习的记录。<br><br>原文地址：http://book.cakephp.org/view/219/Blog<br><br>PS.= =~~~这个我漏了很多，老外废话贼多。就翻了下主要步骤，最后的路由部分类懒得弄了。<br><h2>1.8 创建文章视图</h2>现在我们已经有了数据模型、程序逻辑并定义控制器，完成以上这些后让我们再为index动作创建一个视图。<br>CakePHP的视图只是一些适用于程序页面布局的代码片段。对于大多数程序来说都是HTML跟PHP混合编写的，但是他们也有可能是以XML、CSV亦或两种混合的方式结尾。<br>Layouts are presentation code that is wrapped around a view, and can be defined and switched between, but for now, let's just use the default.<br>回忆一下上一章我们是如何通过set()函数把'posts'的值传给视图的。这些传给视图的数据看起来就像这样：<br>// print_r($posts) output:<br><br>Array<br>(<br>&nbsp;&nbsp;&nbsp; [0] =&gt; Array<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [Post] =&gt; Array<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [id] =&gt; 1<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [title] =&gt; The title<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [body] =&gt; This is the post body.<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [created] =&gt; 2008-02-13 18:34:55<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [modified] =&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; )<br>&nbsp;&nbsp;&nbsp; [1] =&gt; Array<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [Post] =&gt; Array<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [id] =&gt; 2<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [title] =&gt; A title once again<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [body] =&gt; And the post body follows.<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [created] =&gt; 2008-02-13 18:34:56<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [modified] =&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; )<br>&nbsp;&nbsp;&nbsp; [2] =&gt; Array<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [Post] =&gt; Array<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [id] =&gt; 3<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [title] =&gt; Title strikes back<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [body] =&gt; This is really exciting! Not.<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [created] =&gt; 2008-02-13 18:34:57<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [modified] =&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; )<br>)<br>CakePHP的视图文件被放在/app/views的一个根据它所属的控制器命名的目录里（因此我要创建一个名为'post'的目录）。把文章的数据放在一个漂亮的表格里，我们的视图代码开起来是这样的：<br>&nbsp;&nbsp;&nbsp; &lt;!-- File: /app/views/posts/index.ctp --&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;Blog posts&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; &lt;table&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;tr&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;th&gt;Id&lt;/th&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;th&gt;Title&lt;/th&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;th&gt;Created&lt;/th&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!-- Here is where we loop through our $posts array, printing out post info --&gt;<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;?php foreach ($posts as $post): ?&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;tr&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;?php echo $post['Post']['id']; ?&gt;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;?php echo $html-&gt;link($post['Post']['title'], <br>&nbsp;&nbsp;&nbsp; "/posts/view/".$post['Post']['id']); ?&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;?php echo $post['Post']['created']; ?&gt;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;?php endforeach; ?&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br>&nbsp;&nbsp;&nbsp; <br>希望这些还算简单。<br>你也许注意到这里使用了一个叫$html的对象。这是一个HtmlHelper类的实例。CakePHP内置例如超链接、表单布局、JavaScript以及AJAX的视图助手（原文CakePHP comes with a set of view helpers that make things like linking, form output, JavaScript and Ajax a snap.翻不好= =！）。你可以在"Built-in Helpers"这节里学到更多关于怎么使用他们，但是在这里需要重点指出的是link()函数将创建一个超链接，在指定标题（第一个参数）和URL（第二个参数）的情况下。当在CakePHP里指定URL的时候，你只需简单的给出一个相对路径。比如，你的URL可能是这样：/controller/action/参数1/参数2。<br>现在，你可以用你的浏览器访问http://www.example.com/posts/index。你将看到你的视图被正确的显示。<br>如果当你在这个视图里点击其中一个链接的时候（文章标题的URL /posts/view/some_id），你可能被通知动作未被定义。如果没有，可能是是哪里出错了，或者事实上你已经私下定义了它。<br>不管怎么说，我们现在将再PostsController里创建它：<br>&lt;?php<br>class PostsController extends AppController {<br><br>&nbsp;&nbsp;&nbsp; var $name = 'Posts';<br><br>&nbsp;&nbsp;&nbsp; function index() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$this-&gt;set('posts', $this-&gt;Post-&gt;find('all'));<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; function view($id = null) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;Post-&gt;id = $id;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;set('post', $this-&gt;Post-&gt;read());<br>&nbsp;&nbsp;&nbsp; }<br>}<br>?&gt;<br><br>set()函数看起来是差不多的。注意我们使用read()而不是find('all')因为我只需要一篇文章的信息。<br>注意view这个动作需要一个参数：文章的ID。这个参数的值是通过URL获得的，如果一个用户请求/posts/view/3,那么ID的值就是3。。<br>现在让为什么为view动作创建一个新视图在in /app/views/posts/view.ctp。<br>&nbsp;&nbsp;&nbsp; &lt;!-- File: /app/views/posts/view.ctp --&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;&lt;?php echo $post['Post']['title']?&gt;&lt;/h1&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;p&gt;&lt;small&gt;Created: &lt;?php echo $post['Post']['created']?&gt;&lt;/small&gt;&lt;/p&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;p&gt;&lt;?php echo $post['Post']['body']?&gt;&lt;/p&gt;<br><br>现在在/posts/index上检验一下这些链接或者直接打开/posts/view/1试试。<br><h2>1.9 添加文章</h2>首先，在PostController里添加一个add()动作：<br>&nbsp;&nbsp;&nbsp; &lt;?php<br>&nbsp;&nbsp;&nbsp; class PostsController extends AppController {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var $name = 'Posts';<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; function index() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;set('posts', $this-&gt;Post-&gt;find('all'));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; function view($id) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;Post-&gt;id = $id;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;set('post', $this-&gt;Post-&gt;read());<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; function add() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!empty($this-&gt;data)) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($this-&gt;Post-&gt;save($this-&gt;data)) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;Session-&gt;setFlash('Your post has been saved.');<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;redirect(array('action' =&gt; 'index'));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; ?&gt;<br><br>这里说一下add()做了些什么：如果提交的数据不是空的，就尝试用Post模型储存数据。如果因为某些原因无法储存则返回index视图。这里我们就可以向用户显示检验后的错误或警告。<br><br>当用户通过表单向你的程序POST数据时，所提交的信息被储存在$this-&gt;data。如果你想看看这是什么样子的话。你可以用pr()或者debug函数来把他们打印出来。<br><h2>1.10 数据校验</h2>CakePHP可以让数据校验更加简单快速。你需要在你的视图里使用CakePHP的FormHelper。默认情况下FormHelper会被使用到所有$form部分。<br>这是添加文章的视图代码：<br>&nbsp;&nbsp;&nbsp; &lt;!-- File: /app/views/posts/add.ctp --&gt;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;Add Post&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; &lt;?php<br>&nbsp;&nbsp;&nbsp; echo $form-&gt;create('Post');<br>&nbsp;&nbsp;&nbsp; echo $form-&gt;input('title');<br>&nbsp;&nbsp;&nbsp; echo $form-&gt;input('body', array('rows' =&gt; '3'));<br>&nbsp;&nbsp;&nbsp; echo $form-&gt;end('Save Post');<br>&nbsp;&nbsp;&nbsp; ?&gt;<br>这里我使用FormHelper生成未关闭的HTML的form标签。这就是$form-&gt;create('Post')生成的HTML代码。<br>&nbsp;&nbsp;&nbsp; &lt;form id="PostAddForm" method="post" action="/posts/add"&gt;<br>如果create()没有指定参数的话，它会默认把数据POST给当前控制器的add()动作（如果在表单数据里包含了id，那么就提交给edit()动作）。<br>$form-&gt;input()函数被用来创建一个同名的元素标签。第一个参数告诉CakePHP这个标签的类型，第二个参数是设置表单的宽高的一个数组。<br>$form-&gt;end()生成一个提交按钮。第一个参数就是按钮的名字。<br><br>现在让我们更新下/app/views/posts/index.ctp，在里面添加一个新的“Add Post”链接。在&lt;table&gt;前面，添加如下行：<br>&nbsp;&nbsp;&nbsp; &lt;?php echo $html-&gt;link('Add Post',array('controller' =&gt; 'posts', 'action' =&gt; 'add'))?&gt;<br>&nbsp;&nbsp;&nbsp; <br>你也许会想，我改如何告诉CakePHP我的验证规则呢？验证规则默认是被定义在模型里的。让我们回过头看看我们的Post模型，然后做些小调整：<br>&nbsp;&nbsp;&nbsp; &lt;?php<br>&nbsp;&nbsp;&nbsp; class Post extends AppModel<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var $name = 'Post';<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var $validate = array(<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'title' =&gt; array(<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'rule' =&gt; 'notEmpty'<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ),<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'body' =&gt; array(<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'rule' =&gt; 'notEmpty'<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; );<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; ?&gt;<br>$validate数组告诉了CakePHP当save()函数运行时改如何校验你的数据。这里我指定了title和body都不允许留空。<br><h2>1.11 删除文章</h2>现在，让我们为用户添加一个删除文中的功能。首先在PostsController下添加一个delete动作：<br>&nbsp;&nbsp;&nbsp; function delete($id) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;Post-&gt;del($id);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;Session-&gt;setFlash('The post with id: '.$id.' has been deleted.');<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;redirect(array('action'=&gt;'index'));<br>&nbsp;&nbsp;&nbsp; }<br>这个逻辑通过指定的$id删除文章，并且使用$this-&gt;Session-&gt;setFlash()来向用户显示操作信息当页面被重定向到/posts后。<br>因为这个动作只是执行一些逻辑和重定向，所以它并没有视图。下面是在主视图添加删除链接：<br>&nbsp;&nbsp;&nbsp; /app/views/posts/index.ctp<br><br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;Blog posts&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; &lt;p&gt;&lt;?php echo $html-&gt;link('Add Post', array('action' =&gt; 'add')); ?&gt;&lt;/p&gt;<br>&nbsp;&nbsp;&nbsp; &lt;table&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;tr&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;th&gt;Id&lt;/th&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;th&gt;Title&lt;/th&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;Actions&lt;/th&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;th&gt;Created&lt;/th&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;!-- Here's where we loop through our $posts array, printing out post info --&gt;<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;?php foreach ($posts as $post): ?&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;tr&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;?php echo $post['Post']['id']; ?&gt;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;?php echo $html-&gt;link($post['Post']['title'], array('action' =&gt; 'view', 'id' =&gt; $post['Post']['id']));?&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;?php echo $html-&gt;link('Delete', array('action' =&gt; 'delete', 'id' =&gt; $post['Post']['id']), null, 'Are you sure?' )?&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;?php echo $post['Post']['created']; ?&gt;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;?php endforeach; ?&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br>这里同样使用了HtmlHelper来生成一个JavaScript对话框。<br><h2>1.12 编辑文章</h2>编辑文章：让我们开始吧，你现在已经是CakePHP专家了（= =！老外真会说好听的），所以你应该知道该怎么做了。创建一个动作，然后是视图。下面就是PostsController里的edit()动作：<br>&nbsp;&nbsp;&nbsp; function edit($id = null) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;Post-&gt;id = $id;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (empty($this-&gt;data)) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;data = $this-&gt;Post-&gt;read();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($this-&gt;Post-&gt;save($this-&gt;data)) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;Session-&gt;setFlash('Your post has been updated.');<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;redirect(array('action' =&gt; 'index'));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>这个动作首先是检查表单提交的数据。如果什么都有它就会提示错误。如果有数据提交，它就会尝试用Post模型储存数据（或者向用户返回校验后的错误）。<br><br>编辑页面的代码：<br>/app/views/posts/edit.ctp<br>&nbsp;&nbsp;&nbsp; <br>&lt;h1&gt;Edit Post&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; &lt;?php<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo $form-&gt;create('Post', array('action' =&gt; 'edit'));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo $form-&gt;input('title');<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo $form-&gt;input('body', array('rows' =&gt; '3'));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo $form-&gt;input('id', array('type'=&gt;'hidden')); <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo $form-&gt;end('Save Post');<br>&nbsp;&nbsp;&nbsp; ?&gt;<br>这个页面显示了编辑表单和一些必需的校验错误信息。<br>有一点要注意的是：当数据数组里存在'id'的时候，CakePHP就会认为你是在编辑1个模块，反之，如果没有'id'则被认为是在添加一个新的模块。<br>你现在可以把你的主页面编辑成这样：<br>&nbsp;&nbsp;&nbsp; /app/views/posts/index.ctp (edit links added)<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;Blog posts&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; &lt;p&gt;&lt;?php echo $html-&gt;link("Add Post", array('action'=&gt;'add')); ?&gt;<br>&nbsp;&nbsp;&nbsp; &lt;table&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;tr&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;th&gt;Id&lt;/th&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;th&gt;Title&lt;/th&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;Action&lt;/th&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;th&gt;Created&lt;/th&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;!-- Here's where we loop through our $posts array, printing out post info --&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;?php foreach ($posts as $post): ?&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;tr&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;?php echo $post['Post']['id']; ?&gt;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;?php echo $html-&gt;link($post['Post']['title'],array('action'=&gt;'view', 'id'=&gt;$post['Post']['id']));?&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;?php echo $html-&gt;link(<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'Delete', <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; array('action'=&gt;'delete', 'id'=&gt;$post['Post']['id']), <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; null, <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'Are you sure?'<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; )?&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;?php echo $html-&gt;link('Edit', array('action'=&gt;'edit', 'id'=&gt;$post['Post']['id']));?&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;?php echo $post['Post']['created']; ?&gt;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br>&nbsp;&nbsp;&nbsp; &lt;?php endforeach; ?&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br><br><span style="color: rgb(255, 0, 0);">over~= =!</span><br><ul><li><a href="http://meckmeck.cn/?id=87">15分钟使用CakePHP创建一个简单的博客（一）</a></li><li><a href="http://meckmeck.cn/?id=88">15分钟使用CakePHP创建一个简单的博客（二）</a></li></ul>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Sun, 28 Jun 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>15分钟使用CakePHP创建一个简单的博客（二） - [PHP]</title>
				<link>http://meckmeck.cn/blog?id=88</link>
				<description>
				<![CDATA[
				既然要看文档为什么不看英文文档呢？所以自己翻译了CakePHP手册里的这篇文章，翻得很烂，权当自己学习的记录。<br><br>原文地址：http://book.cakephp.org/view/219/Blog<br><br>
<h2>1.4 可选配置</h2>
<p>另外还有两个项目可以设置。大多数开发者不需要本文就能搞定。一是定义用于安全散列的字符串（或者叫做“salt”），二是设置CakePHP能对它的tmp文件夹执行写操作。<br><br>更改/app/config/core.<a class="bodytag" href="http://www.yeeyan.com/articles/tag/php" target="_blank"><em>php</em></a> 153行的值。不管新的值是什么，越长就越不容易被猜到。<br><br>&nbsp;&nbsp;&nbsp; &lt;?<a class="bodytag" href="http://www.yeeyan.com/articles/tag/php" target="_blank"><em>php</em></a><br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* A random string used in security hashing methods.<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; Configure::write('Security.salt', 'pl345e-P45s_7h3*S@l7!');<br>&nbsp;&nbsp;&nbsp; ?&gt;<br>&nbsp;&nbsp;&nbsp; <br>最后的问题是把app/tmp目录设置成能被网页写入。最好的方法是通过运行“&lt;?<a class="bodytag" href="http://www.yeeyan.com/articles/tag/php" target="_blank"><em>php</em></a> echo 'whoami'; ?&gt;”来找到网页服务的所有者，然后把app/tmp目录的所有权设置成该目录。在*nix下的命令可能看起来是这个样子的（我是直接把tmp的权限设为777的，原文这么写我就照翻了）。<br><br>&nbsp;&nbsp;&nbsp; $ chown -R www-data app/tmp<br><br>如果因为某些原因CakePHP不能写这个目录，你将被在程序运行的时候得到一个警告。</p>
<h2>1.5 关于mod_rewrite</h2>
<p>有时候新用户会遇上mod_rewrite的问题，所以在这里我促略的提一下。如果CakePHP的欢迎页面看起来有点怪怪的（没图片或者没有CSS样式），这可能就意味着mod_rewrite并没有在你的系统上起作用。下面一些将帮助你运行它：
<br></p><p>1.确定再你的httpd.conf里.htaccess是被允许的，你应该在服务器上有一段东西来定义你每一个目录。确定 AllowOverride是被设置成All的。为了安全性和性能考虑，不要在&lt;Directory /&gt;里设置把AllowOverride设置成All，而应该是在指出你真实web目录&lt;Directory&gt;区域。<br></p><p>2.确定你编辑了正确的httpd.conf(原文后面是rather than a user- or site-specific httpd.conf，我不能理解。= =！)。<br></p><p>3.另外一些原因是：你获得的CakePHP拷贝可能没有.htaccess文件。这是因为有些操作系统会把文件名'.'开始的文件设置为隐藏而没有复制他们。确定你的CakePHP拷贝来自网站的下载区或者SVN仓库。<br></p><p>4.确定Apache正确加载了mod_rewrite模块。你应该能看到像“LoadModule rewrite_module libexec/httpd/mod_rewrite.so or (Apache 1.3) AddModule mod_rewrite.c”的字样在你的httpd.conf里。</p>

<p>&nbsp;&nbsp;&nbsp; <br>如果你不想使用或不能使用mod_rewirte（或者其他一些兼容的模块）在你的服务器上，你需要使用CakePHP构建干净的URL。在/app/config/core.<a class="bodytag" href="http://www.yeeyan.com/articles/tag/php" target="_blank"><em>php</em></a>里，取消下面这行的注释：<br>&nbsp;&nbsp;&nbsp; Configure::write('App.baseUrl', env('SCRIPT_NAME'));<br>并且删除.htaccess文件：</p>
<p>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /.htaccess<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /app/.htaccess<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /app/webroot/.htaccess</p>
<p><br>这将你的URL看起来像“www.example.com/index.<a class="bodytag" href="http://www.yeeyan.com/articles/tag/php" target="_blank"><em>php</em></a>/controllername/actionname/param”而不是“www.example.com/controllername/actionname/param”。</p>
<p>&nbsp;</p>
<h2>1.6 创建一个Post模型</h2>
<p>模型好比是CakePHP程序的血肉。通过创建CakePHP模型来于数据库互通，这样我们就有了在适当的位置查看、添加、编辑以及删除的基础。<br>CakePHP的模型文件被放置在/app/models，我们创建的文件将被保存在/app/models/post.<a class="bodytag" href="http://www.yeeyan.com/articles/tag/php" target="_blank"><em>php</em></a>。完整的文件应该看起来是这个样子的:<br>&nbsp;&nbsp;&nbsp; &lt;?<a class="bodytag" href="http://www.yeeyan.com/articles/tag/php" target="_blank"><em>php</em></a><br><br>&nbsp;&nbsp;&nbsp; class Post extends AppModel {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var $name = 'Post';<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; ?&gt;</p>
<p>在CakePHP里命名规则是很重要的。通过我们的Post模型，CakePHP能自动判断出这个模型将被用在PostsController,并且关联到叫做posts数据库表。<br><br><span style="background-color: rgb(255, 255, 153);">&nbsp;&nbsp;&nbsp; 提示：如果CakePHP不能在/app/models下找到相应的文件，它会自动为你创建模型块。这也意味着，不小心错误地命名了你的文件（例如：Post.<a class="bodytag" href="http://www.yeeyan.com/articles/tag/php" target="_blank"><em>php</em></a>或者posts.php）CakePHP将使用默认设置，而忽略你的任何设置。</span><br><br>最好加上$name变量，以用来区别PHP4一些奇怪的类名。<br>更多关于模型的内容，例如表前缀、回调以及检验，请查看手册里的<a href="http://book.cakephp.org/view/66/" target="_blank">模型</a>章节。</p>
<h2>1.7 创建一个Posts控制器</h2>
<p>下面我将为为什么的文章创建一个控制器。当交互发生时控制器将处理所有的post逻辑。我们将在/app/controllers目录下的posts_controller.<a class="bodytag" href="http://www.yeeyan.com/articles/tag/php" target="_blank"><em>php</em></a>文件里新建一个控制器。一个基本的控制器看起来应该是这样子：<br>&nbsp;&nbsp;&nbsp; &lt;?<a class="bodytag" href="http://www.yeeyan.com/articles/tag/php" target="_blank"><em>php</em></a><br>&nbsp;&nbsp;&nbsp; class PostsController extends AppController {<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var $name = 'Posts';<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; ?&gt;</p>
<p>&nbsp;</p>
<p>现在，让我们在控制器里添加一个动作。在程序里一个动作往往是一个单独的方法或者借口。例如，当用户访问 www.example.com/posts/index (等同于www.example.com/posts/)是，他们希望得到一个文章的列表。那么动作的代码看起来应该是这个样子:<br>&nbsp;&nbsp;&nbsp; &lt;?<a class="bodytag" href="http://www.yeeyan.com/articles/tag/php" target="_blank"><em>php</em></a><br>&nbsp;&nbsp;&nbsp; class PostsController extends AppController {<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var $name = 'Posts';<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; function index() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $this-&gt;set('posts', $this-&gt;Post-&gt;find('all'));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; ?&gt;<br>让我来稍微解释下这个动作。通过在我们在PostsController里定义index()方法，当用户访问www.example.com/posts /index时能得到正确逻辑处理。同理，如果我们定义一个foobar()的方法的话，用户就能访问www.example.com/posts /foobar。</p>
<p><span style="background-color: rgb(255, 153, 204);">You may be tempted to name your controllers and actions a certain way to obtain a certain URL. Resist that temptation. Follow CakePHP conventions (plural controller names, etc.) and create readable, understandable action names. You can map URLs to your code using "routes" covered later on.（这段不不大理解）。</span><br><br>另外说明下动作里使用set()来把控制器的数据传递给视图（我们等下要创建的）。这行将一个视图参数设置为Post模型find('all')函数返回的值。我们的Post模型会自动获得$this-&gt;Post的值因为我们遵循了CakePHP的命名规则。</p>
<p>学习更多关于CakePHP控制器的内容，请查看<a href="http://book.cakephp.org/view/49/">"Controllers"</a>。</p>
<ul>
<li><a href="http://meckmeck.cn/?id=87">15分钟使用CakePHP创建一个简单的博客（一）</a></li><li><a href="http://meckmeck.cn/?id=91">15分钟使用CakePHP创建一个简单的博客（三）</a><br></li></ul>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Tue, 23 Jun 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>15分钟使用CakePHP创建一个简单的博客（一） - [PHP]</title>
				<link>http://meckmeck.cn/blog?id=87</link>
				<description>
				<![CDATA[
				既然要看文档为什么不看英文文档呢？所以自己翻译了CakePHP手册里的这篇文章，翻得很烂，权当自己学习的记录。<br><br>原文地址：http://book.cakephp.org/view/219/Blog<br><br>
<div id="article_body" style="height: 100%;">
<h2>1 准备</h2>
<p>欢迎来到CakePHP的世界！你也许正在看这篇指导文章，因为你想更多地了解CakePHP是如何工作的。我们的目标就是增加程序的生产效率并且让代码更有趣：我们希望当你编写代码的时候会明白这一点。</p>
<p>这篇文章将带你创建一个简单的博客程序。我们将先获得并安装CakePHP,然后配置一个数据库，接着创建一个能够展示、添加、编辑并且删除文章的程序。</p>
<p>下面这些是你所需要的：</p>
<ol>
<li>一个正在运行的WEB服务器。尽管下面的介绍对于其他服务器软件来说都是相似的，但再这里我们假定你正在使用Apache。我们可能会对服务器做一些配置，但是对于大多数人完全可以运行CakePHP而不用做任何配置。
</li><li>一个数据库程序。在这篇文章里，我们将使用mySQL。你需要有足够的SQL知识来创建一个数据库：CakePHP将操作它。
</li><li>基本的PHP知识。特别是对于OOP的了解越多越好：但是也别担心，如果你是一个程序爱好者的话。
</li><li>最后，你需要一些MVC方面的基本知识。你也可以快速的看一下这篇文章：<a href="http://book.cakephp.org/view/10/">《理解 Model-View-Controller》</a>。</li></ol>
<p>下面就让我们开始吧。</p>
<h2>1.1 获得CakePHP</h2>
<p>首先，让我们获得一个新的CakePHP拷贝。</p>
<p>访问在Cakeforge上的CakePHP项目：<a href="http://cakeforge.org/projects/cakephp/">http://cakeforge.org/projects/cakephp/</a>下载稳定版本。在这里你需要1.2.x.x</p>
<p>你也可以查看/导出一个新的拷贝在我们的trun上： <a href="https://svn.cakephp.org/repo/trunk/cake/1.2.x.x/">https://svn.cakephp.org/repo/trunk/cake/1.2.x.x/</a></p>
<p>不管你是怎么下载它的，把它放到你自己的文档目录里。这些完成后你的目录看起来应该是下面这个样子的：</p><pre class="code">/path_to_document_root<br>    /app<br>    /cake<br>    /docs<br>    /vendors<br>    .htaccess<br>    index.<a class="bodytag" href="http://www.yeeyan.com/articles/tag/php" target="_blank"><em>php</em></a></pre>
<p>现在正是可以学习下CakePHP的目录结构是如何工作的：查看<a href="http://book.cakephp.org/view/19/">《CakePHP文件结构》</a>。</p>
<h2>1.2 创建一个数据库</h2>
<p>接下来，为我们的博客建立一个数据库。现在我们只需要创建一个表来储存我们的文章。作为检测我还将添加一些文章进去。在你的数据库里执行下面的SQL语句：</p><pre class="code">/* 首先，创建我们的posts表: */<br>CREATE TABLE posts (<br>    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,<br>    title VARCHAR(50),<br>    body TEXT,<br>    created DATETIME DEFAULT NULL,<br>    modified DATETIME DEFAULT NULL<br>);<br><br>/* 然后添加一些文章作为测试: */<br>INSERT INTO posts (title,body,created)<br>    VALUES ('The title', 'This is the post body.', NOW());<br>INSERT INTO posts (title,body,created)<br>    VALUES ('A title once again', 'And the post body follows.', NOW());<br>INSERT INTO posts (title,body,created)<br>    VALUES ('Title strikes back', 'This is really exciting! Not.', NOW());</pre>
<p>表和字段的名字都不是随意取的。如果你遵守CakePHP的数据库和类命名规则（<a href="http://book.cakephp.org/view/22">《CakePHP 规则》</a>），你将能使用很多函数功能并且不需要配置。CakePHP能足够灵活的兼容那些糟糕的数据库设计，但是依靠一些约定能节省你的时间。</p>
<p>查看<a href="http://book.cakephp.org/view/22">《CakePHP 规则》</a>获得更多信息。将我们的表命名为'posts'是符合规则的，它会自动跟我们的Post模型挂钩，而'modified'和'created'字段也会自动被CakePHP处理。</p>
<h2>1.3 数据库的配置</h2>
<p>继续：让我们告诉CakePHP我们数据库在哪里并且如何链接它。大多数情况下这是你第一次也是最后一次配置这一切。</p>
<p>CakePHP的数据库配置文件在<code>/app/config/database.<a class="bodytag" href="http://www.yeeyan.com/articles/tag/php" target="_blank"><em>php</em></a>.default。在同一目录下复制这个文件并且命名为database.php。</code></p>
<p>配置文件非常简单明了：只需要把$default数组里的值替换成你自己的设置。一个已完成的配置应该看起来是下面这个样子：</p><pre class="code">var $default = array(<br>	'driver' =&gt; 'mysql',<br>	'persistent' =&gt; 'false',<br>	'host' =&gt; 'localhost',<br>	'port' =&gt; '',<br>	'login' =&gt; 'cakeBlog',<br>	'password' =&gt; 'c4k3-rUl3Z',<br>	'database' =&gt; 'cake_blog_tutorial',<br>	'schema' =&gt; '',<br>	'prefix' =&gt; '',<br>	'encoding' =&gt; ''<br>);<br><br></pre>
<p>现在，保存database.php文件。你可以打开你的浏览器，并且看到CakePHP的欢迎页面。它会告诉你的数据库配置文件被发现并且CakePHP成功连接了数据库。</p>
<ul>
<li><a href="http://meckmeck.cn/?id=88">15分钟使用CakePHP创建一个简单的博客（二）</a></li><li><a href="http://meckmeck.cn/?id=91">15分钟使用CakePHP创建一个简单的博客（三）</a><br></li></ul></div>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Mon, 22 Jun 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>Skateboarding Day - [滑板]</title>
				<link>http://meckmeck.cn/blog?id=86</link>
				<description>
				<![CDATA[
				<P>迫不及待了~</P>
<P>&nbsp;<EMBED src=http://www.tudou.com/v/wPFekWEk9e0 width=420 height=28 type=application/x-shockwave-flash wmode="opaque" allowfullscreen="true" allowscriptaccess="always"></EMBED> </P>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Fri, 19 Jun 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>天气这么热怎么办啊 - [生活嘛]</title>
				<link>http://meckmeck.cn/blog?id=85</link>
				<description>
				<![CDATA[
				白天玩板受不了，晚上出去没车回。<br>马马的。<br>还是好好学习吧~<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Mon, 15 Jun 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>计划 - [生活嘛]</title>
				<link>http://meckmeck.cn/blog?id=84</link>
				<description>
				<![CDATA[
				先粗略得把JS和CSS看完。然后找个程序读源码。<br>尽量不要浪费时间。<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Mon, 15 Jun 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>什么啊 - [生活嘛]</title>
				<link>http://meckmeck.cn/blog?id=83</link>
				<description>
				<![CDATA[
				没事做闲得蛋疼，有事做烦。事情又不像看起来那么简单。可毕竟我也是个天才~
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Wed, 10 Jun 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>失眠日记 - [生活嘛]</title>
				<link>http://meckmeck.cn/blog?id=82</link>
				<description>
				<![CDATA[
				我他妈绝对是个工作狂。一有事做就非完成不罢休。可是第二天又要上班，不睡不行，躺在床上又睡不着，满脑子的想着这程序该怎么写。外面已经有鸟叫，8点半上班到现在还没睡过。所以又想起要在读书多好，哎，你妈的以后哪家公司找了我绝对的赚。 
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Tue, 09 Jun 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>大三的年纪，工作的命 - [生活嘛]</title>
				<link>http://meckmeck.cn/blog?id=81</link>
				<description>
				<![CDATA[
				&lt;P&gt;这他妈确实是一个悖论。&lt;BR&gt;如果我没工作继续读书，我就还在吃喝玩乐，不会有现在这样的觉悟。现在工作了不读书，就想着读书那会多好，大把的时间给你花。&lt;BR&gt;今天滑板有点小进步，但是毕竟没想把这个当饭吃。&lt;BR&gt;一想到有那么多东西要学我就又有点小泄气，毕竟现在是完全一个人在学。&lt;/P&gt;
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Sat, 06 Jun 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>哥哥也过三立了 - [滑板]</title>
				<link>http://meckmeck.cn/blog?id=80</link>
				<description>
				<![CDATA[
				Ollie练好了，跳得高了，Flip也漂亮了，跳楼梯也不累了。现在一跳顶过去两跳。
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Fri, 05 Jun 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>哦卖糕的 - [生活嘛]</title>
				<link>http://meckmeck.cn/blog?id=77</link>
				<description>
				<![CDATA[
				经研究，最后在卓越买了书，一本《Java Script高级程序设计》，一本《CSS权威指南(第3版)》。然后今天修改程序的时候严重意识到要加强数据库的学习。所以还得回头去看mysql。= =~！！！！那本开发实例的书也还没啃掉！哦卖糕的~！要同时看三四本书这样的生活真让人绝望！
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Wed, 27 May 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>又是一晚上。。。 - [瞎折腾]</title>
				<link>http://meckmeck.cn/blog?id=76</link>
				<description>
				<![CDATA[
				东搞西搞，弄了下样式，然后一晚上就过去了。我太牛逼了！图片上传也算搞定，博客就暂时到这里吧~！<br>= =~!去当当买本JS的书看看~<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Tue, 26 May 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>啊哦~~ - [滑板]</title>
				<link>http://meckmeck.cn/blog?id=75</link>
				<description>
				<![CDATA[
				<img style="width: 477px; height: 357px;" src="http://meckmeck.cn/upload/image/200905262134301725.jpg"><br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Sat, 23 May 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>图片上传测试 - [滑板]</title>
				<link>http://meckmeck.cn/blog?id=74</link>
				<description>
				<![CDATA[
				<img style="width: 401px; height: 533px;" src="http://meckmeck.cn/upload/image/200905262135185625.jpg"><br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Fri, 22 May 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>想再写个东西 - [生活嘛]</title>
				<link>http://meckmeck.cn/blog?id=73</link>
				<description>
				<![CDATA[
				今天老妈又来电话问我要不要去做什么什么~~<br>哎~~得赶紧学厉害点~<br>要写个完整的网站出来~~<br>写什么好呢~睡不着阿~<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Fri, 15 May 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>挺头痛的 - [生活嘛]</title>
				<link>http://meckmeck.cn/blog?id=72</link>
				<description>
				<![CDATA[
				写个东西又写得乱七八糟，那么多东西要学呢。
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Thu, 07 May 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>你们最牛B - [不要停止我的音乐]</title>
				<link>http://meckmeck.cn/blog?id=71</link>
				<description>
				<![CDATA[
				住帐篷，踩泥巴，拉大圈，开火车，大合唱。我爱你们~！
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Sun, 03 May 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>搞定RSS输出，评论回复和邮件通知 - [瞎折腾]</title>
				<link>http://meckmeck.cn/blog?id=70</link>
				<description>
				<![CDATA[
				哎，又一晚上没睡~<br>接下来应该搞分类、标签和附件上传了~<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Tue, 28 Apr 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>终于要去MIDI了 - [不要停止我的音乐]</title>
				<link>http://meckmeck.cn/blog?id=67</link>
				<description>
				<![CDATA[
				车票已买，5.1杀往镇江~！！！！！！！！！ 
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Sun, 26 Apr 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>poxy专辑下载 - [不要停止我的音乐]</title>
				<link>http://meckmeck.cn/blog?id=66</link>
				<description>
				<![CDATA[
				真是个神秘的乐队啊。<br>在soulseek挂了一个多星期下来的。。。<br>http://www.rayfile.com/zh-cn/files/31ba86b5-4093-11de-9b32-0019d11a795f/
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Thu, 23 Apr 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>决定还是用回自己写的 - [瞎折腾]</title>
				<link>http://meckmeck.cn/blog?id=65</link>
				<description>
				<![CDATA[
				我会慢慢完善的。
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Mon, 20 Apr 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>margin-left在IE6下被解释为双倍距离的解决办法 - [HTML/CSS]</title>
				<link>http://meckmeck.cn/blog?id=64</link>
				<description>
				<![CDATA[
				当在页面构架中，出现了Margin与float一起用时，在IE6下，其Margin属性会被解释会双倍的距离。<br>&nbsp;解决办法是取消浮动：Float或者给当前层增加display: inline;属性。
<br>顺便鄙视下世界上最恶心的浏览器IE！
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Mon, 20 Apr 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>htmlentities() 函数的乱码问题 - [PHP]</title>
				<link>http://meckmeck.cn/blog?id=61</link>
				<description>
				<![CDATA[
				差点崩溃掉，明明编码都统一的，但还是出现乱码。后来才发现是htmlentities() 函数的问题，记录一下。 <br><span style="font-weight: bold;">http://cn.php.net/htmlentities</span><br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Thu, 19 Mar 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>搞定了 - [瞎折腾]</title>
				<link>http://meckmeck.cn/blog?id=60</link>
				<description>
				<![CDATA[
				没办法，重装了系统，Linux就是好，因为配置文件都放在/home下，所以即使重装也只要简单配置下就回到原来的样子了！<br>网易做了件大好事啊，提供的源超快的。<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Sat, 14 Mar 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>真折腾 - [瞎折腾]</title>
				<link>http://meckmeck.cn/blog?id=59</link>
				<description>
				<![CDATA[
				吃了饭没事干想自己试着编译装下N的官方驱动，没想到，旧的删了，新的装不上。现在又不知道为什么X里鼠标和键盘都用不了。<br>不要逼我又重装啊。- -难道要顺便试下KDE么。。。<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Thu, 12 Mar 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>健康生活 - [生活嘛]</title>
				<link>http://meckmeck.cn/blog?id=58</link>
				<description>
				<![CDATA[
				要求不高<br>一星期至少听一张专辑,至少滑板一次<br>努力学习<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Tue, 10 Mar 2009 03:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>恩 - [不要停止我的音乐]</title>
				<link>http://meckmeck.cn/blog?id=55</link>
				<description>
				<![CDATA[
				3月8日 15:00 反光镜专场 @旅行者
<br>3月22日 15:00 AK47专场 @旅行者
<br>3月24日 20:00 丹麦CLEAN BOYS 乐队中国巡演 @蜜桃咖啡
<br>3月28日 15:00 声音碎片专场 @旅行者
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Sat, 28 Feb 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>修改MTU - [Ubuntu/Linux]</title>
				<link>http://meckmeck.cn/blog?id=54</link>
				<description>
				<![CDATA[
				sudo ifconfig eth0 mtu 1450<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Thu, 26 Feb 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>囧阿～～终于解决了～ - [Ubuntu/Linux]</title>
				<link>http://meckmeck.cn/blog?id=53</link>
				<description>
				<![CDATA[
				ubuntu一个星期不能上网了，问了很多人又google了N久。。。终于今天找到了问题所在。。。原来还是DNS的问题阿，太囧了！！！<br>本来以为跟win下用的同样的DNS地址，应该是没问题的，而且也手动配置过DNS地址，还是不能上网，所以放弃了对DNS的怀疑。<br>但是今天绝望的再次在终端输入nslookup www.google.com的时候返回如下：<br>——————————————————————————<br>;; Got recursion not available from 202.96.104.18, trying next server<br>Server:&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 202.96.104.16<br>Address:&nbsp;&nbsp;&nbsp; 202.96.104.16#53<br><br>Non-authoritative answer:<br>www.google.com&nbsp;&nbsp;&nbsp; canonical name = www.l.google.com.<br>www.l.google.com&nbsp;&nbsp;&nbsp; canonical name = www-china.l.google.com.<br>Name:&nbsp;&nbsp;&nbsp; www-china.l.google.com<br>Address: 72.14.235.99<br>Name:&nbsp;&nbsp;&nbsp; www-china.l.google.com<br>Address: 72.14.235.147<br>Name:&nbsp;&nbsp;&nbsp; www-china.l.google.com<br>Address: 72.14.235.104<br>——————————————————————————<br>我才注意到;; Got recursion not available from 202.96.104.18, trying next server这句。。。囧～～上次手动配的时候也填的这个DNS地址。原来是这个地址不能用。那时候居然没发现！！！<br><br>但是问题是ubuntu怎么不会选择呢。。。一个不能用为什么不选另一个。。。以前都是没问题的啊！！囧！<br>现在另一个问题是为什么网速那么不稳定呢。。。开网页的时候老是在10K/s以内。。导致老是打不开一些网页。但是有时候下载速度又能有500k/s呢。。。<br><br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Thu, 26 Feb 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>谁来解救我~~ - [Ubuntu/Linux]</title>
				<link>http://meckmeck.cn/blog?id=52</link>
				<description>
				<![CDATA[
				问题：http://forum.ubuntu.org.cn/viewtopic.php?f=73&amp;t=185793<br><br>已经借着ubuntu上不了网的幌子在win下玩了两天游戏了。。。~~<br>o(╯□╰)o~~<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Sun, 22 Feb 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>FleaPHP太棒了！ - [PHP]</title>
				<link>http://meckmeck.cn/blog?id=51</link>
				<description>
				<![CDATA[
				感觉到自己写的程序再写下去结构肯定会越来越乱，一段时间不理他，自己都搞不清楚了。今天花了一个晚上学习了下FleapPHP。这一切实在是简单了不少阿，这两天就把博客弄到FleapPHP上。
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Wed, 18 Feb 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>The Battle at the Berrics - [滑板]</title>
				<link>http://meckmeck.cn/blog?id=32</link>
				<description>
				<![CDATA[
				http://www.theberrics.com/batb.php<br>精彩，pia pia的～～<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Sat, 14 Feb 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>完全用linux工作 - [Ubuntu/Linux]</title>
				<link>http://meckmeck.cn/blog?id=31</link>
				<description>
				<![CDATA[
				<h3 id="news_title"><font size="2">文章一篇：<a href="http://www.cnbeta.com/articles/76147.htm" target="_blank">清华申请退学博士作品：完全用Linux工作</a></font></h3>用了有半年Ubuntu了，现在基本上要做的事情都能在Linux上完成，我觉得别的什么都问题不大，就是英语实在很重要，很多人说Linux上的软件少，其实是中文的少吧。<br>接触很多Linux阵营的观点后发现微软是很恶心。<br>另外最近好像内存吃紧，貌似firefox插件的问题，firefox吃内存居然有500M多，插件太多了，晚上好好排查下到底是哪个的问题。<br><br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Fri, 06 Feb 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>要仔细阿 - [瞎折腾]</title>
				<link>http://meckmeck.cn/blog?id=30</link>
				<description>
				<![CDATA[
				我太傻了，下载了个flash播放器，里面有as,fla,swf的3个文件，fla我知道是swf的源文件，然后我以为swf直接调用as的脚本来着，然后拼命改as里的脚本，播放器却没一点反应，搞了N个小时，人要崩溃掉。后来才突然想到，这个as是跟fla一起的阿。。。囧掉～～我太盲目了～～<br><br>另外最近的目标是什么呢<br>把“圣经”里的的几个例子看完，然后把博客后台完善下，<br>还要看下js。<br><br>好像也没别的什么要求了～<br><br>更上一层楼！<br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Fri, 06 Feb 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>明天回宁波 - [生活嘛]</title>
				<link>http://meckmeck.cn/blog?id=29</link>
				<description>
				<![CDATA[
				过年真无聊~<br>睡觉～WAR3~修电脑～<br>没学习～没滑板～<br><br>我不要你去北京，我不要去宁波了～<br><br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Thu, 29 Jan 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>BabyShambles - Fuck Forever - [不要停止我的音乐]</title>
				<link>http://meckmeck.cn/blog?id=28</link>
				<description>
				<![CDATA[
				<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/IpeJFVvwz6A&amp;hl=zh_CN&amp;fs=1&amp;color1=0x5d1719&amp;color2=0xcd311b"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/IpeJFVvwz6A&amp;hl=zh_CN&amp;fs=1&amp;color1=0x5d1719&amp;color2=0xcd311b" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"></object>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Wed, 21 Jan 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>回家了 - [生活嘛]</title>
				<link>http://meckmeck.cn/blog?id=27</link>
				<description>
				<![CDATA[
				家里用电信，网速真慢。。。
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Tue, 20 Jan 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>体验Windows7 - [瞎折腾]</title>
				<link>http://meckmeck.cn/blog?id=26</link>
				<description>
				<![CDATA[
				今天在VBOX装了下Win7，整个安装过程都很顺利，只用了差不多半个小时，只有在安装增强工具的时候出了点问题，提示无法识别系统版本，使用兼容模式顺利解决问题。<br>然后发现一个很神奇的事情，VBOX下Win7的网卡是默认NAT连接的，但是却可以访问主机的共享文件，就跟桥接模式一样，而且不妨碍连接外网。<br><br><img style="width: 750px; height: 469px;" src="http://meckmeck.cn/upload/image/200905270616261350.jpg"><br><br><img style="width: 750px; height: 469px;" src="http://meckmeck.cn/upload/image/2009052706165523.jpg"><br><br><img style="width: 750px; height: 469px;" src="http://meckmeck.cn/upload/image/200905270617079818.jpg"><br>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Wed, 14 Jan 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>博客升级日志 - [PHP]</title>
				<link>http://meckmeck.cn/blog?id=25</link>
				<description>
				<![CDATA[
				<ol><li>后台加了一个编辑器</li><li>增加了分页功能</li></ol>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Mon, 12 Jan 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>李志— in 1982 Bar - [不要停止我的音乐]</title>
				<link>http://meckmeck.cn/blog?id=4</link>
				<description>
				<![CDATA[
				<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/9uzKEULep-0&amp;hl=zh_CN&amp;fs=1"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/9uzKEULep-0&amp;hl=zh_CN&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"></object>
<br>
<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/18BlRnM5gUU&amp;hl=zh_CN&amp;fs=1"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/18BlRnM5gUU&amp;hl=zh_CN&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"></object>
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Sun, 04 Jan 2009 02:00:00 GMT)</pubDate>
          </item>
		<item>
				<title>Hello word!!! - [PHP]</title>
				<link>http://meckmeck.cn/blog?id=3</link>
				<description>
				<![CDATA[
				This is my first PHP program.Though it's very simple now,I'll make it strong in the following days.:)
				]]>
				</description>
				<author>Meck</author>
				<pubDate>Sat, 03 Jan 2009 02:00:00 GMT)</pubDate>
          </item>
		</channel></rss>