<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/myleoliu" type="application/rss+xml" ref="self"></atom:link><fs:self_link href="http://feed.feedsky.com/myleoliu" type="application/rss+xml"></fs:self_link><lastBuildDate>Thu, 05 Jun 2008 03:49:52 GMT</lastBuildDate><title>LBlog</title><link>http://www.myleoliu.com</link><atom:link href="http://www.myleoliu.com/feed" rel="self" type="application/rss+xml"></atom:link><language>en</language><pubDate>Thu, 05 Jun 2008 03:58:29 GMT</pubDate><dc:date>2008-06-05T03:58:29Z</dc:date><dc:language>en</dc:language><item><title>一本不错的书《Zend Framework In Action》</title><link>http://item.feedsky.com/~feedsky/myleoliu/~7036392/89389908/5144345/1/item.html</link><content:encoded>&lt;p&gt;最近在学习Zend Framework,在网上找到一本不错的书《Zend Framework In Action》，Rob Allen等人写的。&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;img style=&quot;border: 0px;&quot; src=&quot;http://www.myleoliu.com/files/Zendframework_in_action.gif&quot; alt=&quot;《Zend Framework In Action》&quot; width=&quot;210&quot; height=&quot;267&quot; /&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
下载地址：&lt;a href=&quot;http://d.download.csdn.net/down/391560/kittyjie&quot; target=&quot;_blank&quot; &gt;ZendFramework In Action&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;目录：&lt;/h2&gt;
&lt;h3&gt;Part 1: The essentials&lt;/h3&gt;
&lt;p&gt;1. Introducing the Zend Framework&lt;br /&gt;
2. Hello Zend Framework!  &lt;/p&gt;
&lt;h3&gt;Part 2: A core application &lt;/h3&gt;
&lt;p&gt;3. Building a web site with the Zend Framework&lt;br /&gt;
4. Ajax&lt;br /&gt;
5. Managing the database&lt;br /&gt;
6. User authentication and authorisation&lt;br /&gt;
7. Forms&lt;br /&gt;
8. Searching&lt;br /&gt;
9. Email&lt;br /&gt;
10. Deployment  &lt;/p&gt;
&lt;h3&gt;Part 3: More power to your application &lt;/h3&gt;
&lt;p&gt;11. Talking with other applications&lt;br /&gt;
12. Mash ups with public web services&lt;br /&gt;
13. Caching: making it faster&lt;br /&gt;
14. Internationalization and localization&lt;br /&gt;
15. Creating PDFs&lt;br /&gt;
16. Integrating with other PHP libraries  &lt;/p&gt;
&lt;h3&gt;Appendix A. Stuff you (should) already know&lt;br /&gt;
Appendix B. System-specific gotchas&lt;br /&gt;
Appendix C. Zend Framework Core Components reference  &lt;/h3&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.myleoliu.com/archives/7.html/feed</wfw:commentRss><description>最近在学习Zend Framework,在网上找到一本不错的书《Zend Framework In Action》，Rob Allen等人写的。




下载地址：ZendFramework In Action
目录：
Part 1: The essentials
1. Introducing the Zend Framework
2. Hello Zend Framework!  
Part 2: A core application 
3. Building a web site with the Zend Framework
4. Ajax
5. Managing the database
6. User authentication and authorisation
7. Forms
8. Searching
9. Email
10. Deployment  
Part 3: More power to your application 
11. Talking [...]</description><category>zend framework</category><category>Ebook</category><pubDate>Thu, 05 Jun 2008 11:49:52 +0800</pubDate><author>admin</author><comments>http://www.myleoliu.com/archives/7.html#comments</comments><guid isPermaLink="false">http://www.myleoliu.com/?p=7</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.myleoliu.com/archives/7.html</fs:srclink><fs:srcfeed>http://www.myleoliu.com/feed</fs:srcfeed><fs:itemid>feedsky/myleoliu/~7036392/89389908/5144345</fs:itemid></item><item><title>Php路径问题及其解决方法</title><link>http://item.feedsky.com/~feedsky/myleoliu/~7036392/89389909/5144345/1/item.html</link><content:encoded>&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
#code{
	background-color:#DBFAFF;
	border:1px solid #BDF6FE;
	padding:12px;
	margin-bottom:10px;
	margin-top:10px;
}
.blue{
	color:#0033FF;
}
.green{
	color:#339900;
}
.green_bold{
	color:#339900;
	font-weight:bold;
}
.red{
	color:#FF0000;
}
.style1 {font-size: 16px}
--&gt;
&lt;/style&gt;
&lt;p align=&quot;left&quot;&gt;初学PHP的时候，我们经常被PHP的绝对路径和相对路径弄的晕头转向。路径问题经常导致include及require命令不能加载到指定的页面，从而导致Web程序运行错误。本文将跟大家一起探讨一下PHP路径问题的常用解决方案。&lt;br /&gt;
    下面我们先做一个个简单的示例:&lt;/p&gt;
&lt;p&gt;
&lt;img style=&quot;border: 0px;&quot; src=&quot;http://www.myleoliu.com/files/image_path_sln1.jpg&quot; alt=&quot;示例1图片&quot; width=&quot;175&quot; height=&quot;185&quot; /&gt;
&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;上图是一个简单Web项目的结构图,其中各文件的代码如下:  &lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;green_bold&quot;&gt;root/index.php :&lt;/span&gt; 
  &lt;/p&gt;
&lt;div id=&quot;code&quot;&gt;
&lt;span class=&quot;red&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;br /&gt;
    &lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt; &lt;span class=&quot;green&quot;&gt;&amp;#8216;app/blog.php&amp;#8217;&lt;/span&gt;;&lt;br /&gt;
    &lt;br /&gt;
    $blog=new Blog();&lt;br /&gt;
    &lt;span class=&quot;blue&quot;&gt;echo&lt;/span&gt; $blog-&amp;gt;GetBlogInfo();&lt;br /&gt;
    &lt;span class=&quot;red&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong class=&quot;green_bold&quot;&gt;root/app/blog.php :&lt;/strong&gt; &lt;/p&gt;
&lt;div id=&quot;code&quot;&gt;
  &lt;span class=&quot;red&quot;&gt;&amp;lt;?php &lt;/span&gt;&lt;br /&gt;
    &lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt; &lt;span class=&quot;green&quot;&gt;&amp;#8216;../lib/smarty/functions.php&amp;#8217;&lt;/span&gt;;&lt;br /&gt;
    &lt;span class=&quot;red&quot;&gt;?&amp;gt; &lt;/span&gt;&lt;br /&gt;
    &lt;span class=&quot;red&quot;&gt;&amp;lt;?php &lt;/span&gt;&lt;br /&gt;
    &lt;span class=&quot;blue&quot;&gt;class&lt;/span&gt; Blog&lt;br /&gt;
    { &lt;br /&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;blue&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;blue&quot;&gt;function&lt;/span&gt; GetBlogInfo()&lt;br /&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;blue&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;green&quot;&gt;&amp;#8216;This is a test of  blog!&amp;#8217;&lt;/span&gt;;&lt;br /&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
    } &lt;br /&gt;
    &lt;span class=&quot;red&quot;&gt;?&amp;gt; &lt;/span&gt;&lt;br /&gt;
    &lt;span class=&quot;red&quot;&gt;&amp;lt;?php &lt;/span&gt;&lt;br /&gt;
    &lt;span class=&quot;blue&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;green&quot;&gt;&amp;#8216;root/app/blog.php loaded successed!&amp;lt;/br&amp;gt;&amp;#8217;&lt;/span&gt;; &lt;br /&gt;
    &lt;span class=&quot;red&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;p align=&quot;left&quot;&gt;首先,我们从浏览器里直接输入&lt;span class=&quot;blue&quot;&gt;http://localhost/root/app/blog.php&lt;/span&gt;,浏览器显示：&lt;/p&gt;
&lt;p&gt;  &amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;root/app/blog.php loaded successed!&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;文件加载成功，没发生任何警告或错误。&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;
  接下来，我们在浏览器中请求如下网站：&lt;span class=&quot;blue&quot;&gt;http://localhost/root/index.php&lt;/span&gt;,浏览器显示出如下错误信息:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;br /&gt;
  Warning: require_once(../lib/smarty/functions.php) [&lt;span class=&quot;blue&quot;&gt;function.require-once&lt;/span&gt;]: failed to open  stream: No such file or directory in  T:\Study\PHP_REL\Projects\root\app\blog.php on line 2&lt;br /&gt;
  Fatal error: require_once() [&lt;span class=&quot;blue&quot;&gt;function.require&lt;/span&gt;]: Failed opening  required &amp;#8216;../lib/smarty/functions.php&amp;#8217; (include_path=&amp;#8217;.;C:\php5\pear&amp;#8217;) in  T:\Study\PHP_REL\Projects\root\app\blog.php on line 2&lt;br /&gt;
  &amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;为什么&amp;#8217;../lib/smarty/functions.php&amp;#8217;没能加载? 我们访问http://localhost/root/app/blog.php没有出现任何异常，这说明出现错误的原因很可能在&lt;span class=&quot;green_bold&quot;&gt;&lt;strong&gt;root/index.php&lt;/strong&gt;&lt;/span&gt;的&lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt; &lt;span class=&quot;green&quot;&gt;&amp;#8216;app/blog.php&amp;#8217;&lt;/span&gt;语句。从Google里搜索一下：&lt;strong class=&quot;red&quot;&gt;php路径问题&lt;/strong&gt;，你就能找到问题的答案。当&lt;span class=&quot;green_bold&quot;&gt;&lt;strong&gt;root/index.php&lt;/strong&gt;&lt;/span&gt;引用&lt;span class=&quot;green_bold&quot;&gt;&lt;strong&gt;root/app/blog.php&lt;/strong&gt;&lt;/span&gt;后，blog.php中的&lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt;语句的参照点变成了&lt;strong class=&quot;green_bold&quot;&gt;root/index.php&lt;/strong&gt;所在的目录（根目录root）。所以，以&lt;span class=&quot;green_bold&quot;&gt;&lt;strong&gt;root/index.php&lt;/strong&gt;&lt;/span&gt;为参照点加载&lt;span class=&quot;green&quot;&gt;&amp;#8216;../lib/smarty/functions.php&amp;#8217;&lt;/span&gt;时,自然就出错了。&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;找到了问题所在，接下来，我们就来寻找解决问题的办法：&lt;/p&gt;
&lt;p class=&quot;green_bold style1&quot;&gt;1.将所有文件放在一个文件夹下&lt;/p&gt;
&lt;p&gt;  将所有文件放在一个文件夹下,那么就不会存在路径问题了。但是，这绝对是个馊主意！！除非你写一个小的不能再小的项目，不然请不要尝试这种方法，没有结构的系统太可怕了！&lt;/p&gt;
&lt;p class=&quot;green_bold style1&quot;&gt; 2.使用绝对路径&lt;/p&gt;
&lt;p&gt; &lt;span class=&quot;red&quot;&gt;&lt;strong&gt;注：&lt;/strong&gt;&lt;/span&gt;PHP中的include和require使用的是文件系统的绝对路径，如&lt;span class=&quot;green&quot;&gt;&amp;#8220;c:\wwwroot\yourproject\index.php&amp;#8221;&lt;/span&gt;&lt;br /&gt;
  &lt;span class=&quot;green&quot;&gt;&lt;/p&gt;
&lt;p&gt;  step1：&lt;/span&gt;刚刚发生异常是因为我们使用了相对路径，如果换成绝对路径就不会出现以上错误。让我们简单修改一下&lt;span class=&quot;green_bold&quot;&gt;root/app/blog.php&lt;/span&gt;:&lt;br /&gt;
  将前三行由 &lt;/p&gt;
&lt;div id=&quot;code&quot;&gt;
  &lt;span class=&quot;red&quot;&gt;&amp;lt;?php &lt;/span&gt;&lt;br /&gt;
  &lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt; &lt;span class=&quot;green&quot;&gt;&amp;#8216;../lib/smarty/functions.php&amp;#8217;&lt;/span&gt;;&lt;br /&gt;
  &lt;span class=&quot;red&quot;&gt;?&amp;gt;&lt;br /&gt;
  &lt;/span&gt;&lt;/div&gt;
&lt;p&gt;  修改为: &lt;/p&gt;
&lt;div id=&quot;code&quot;&gt;
  &lt;span class=&quot;red&quot;&gt;&amp;lt;?php &lt;/span&gt;&lt;br /&gt;
  &lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt; &lt;span class=&quot;green&quot;&gt;&amp;#8216;T:\\Study\\PHP_REL\\Projects\\root\\lib\\smarty\\functions.php&amp;#8217;&lt;/span&gt;;&lt;br /&gt;
  &lt;span class=&quot;red&quot;&gt;?&amp;gt;  &lt;/span&gt;&lt;/div&gt;
&lt;p&gt;
    现在,我们访问:&lt;span class=&quot;blue&quot;&gt;http://localhost/root/index.php&lt;/span&gt;  ,浏览器显示:&lt;/p&gt;
&lt;p&gt;    &amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
    root/app/blog.php loaded successed!&lt;br /&gt;
    This is a test of blog!&lt;br /&gt;
    &amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;
&lt;p&gt;    程序执行成功了。&lt;/p&gt;
&lt;p&gt;  &lt;span class=&quot;green&quot;&gt;step2&lt;/span&gt;：虽然程序不报错了，但很明显，我们并没有真正的解决问题。没有人会在程序里写&lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt;&lt;span class=&quot;green&quot;&gt; &amp;#8216;T:\Study\PHP_REL\Projects&amp;#8230;functions.php&amp;#8217;&lt;/span&gt;这样的东西,这样写将会使程序完全丧失灵活性,使程序难以移植!&lt;/p&gt;
&lt;p&gt;
    让我们再重新回想一下出现错误的原因:1.不同层次文件之间的引用使&lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt;的&lt;strong&gt;参照点&lt;/strong&gt;发生了变化;2.参照点发生变化后，按&lt;strong&gt;相对路径&lt;/strong&gt;加载文件会出错。如果我们把&lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt;的参照点固定,问题不就解决了吗.如何固定参照点?当然是使用绝对路径，具体实现方法：一个函数+一个常量:dirname()和__FILE__。让我们重新修改&lt;span class=&quot;green_bold&quot;&gt;root/app/blog.php&lt;/span&gt;如下：&lt;br /&gt;
    将前三行由 &lt;/p&gt;
&lt;div id=&quot;code&quot;&gt;
&lt;span class=&quot;red&quot;&gt;&amp;lt;?php &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt; &lt;span class=&quot;green&quot;&gt;&amp;#8216;T:\\Study\\PHP_REL\\Projects\\root\\lib\\smarty\\functions.php&amp;#8217;&lt;/span&gt;; &lt;br /&gt;
&lt;span class=&quot;red&quot;&gt;?&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;修改为: &lt;/p&gt;
&lt;div id=&quot;code&quot;&gt;
&lt;span class=&quot;red&quot;&gt;&amp;lt;?php &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt; dirname(__FILE__).&lt;span class=&quot;green&quot;&gt;&amp;#8216;/&amp;#8217;&lt;/span&gt;.&lt;span class=&quot;green&quot;&gt;&amp;#8216;../lib/smarty/functions.php&amp;#8217;&lt;/span&gt;; &lt;br /&gt;
&lt;span class=&quot;red&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;
再次访问&lt;span class=&quot;blue&quot;&gt;http://localhost/root/index.php&lt;/span&gt;程序运行正常,但这种解决方式很明显优于&lt;span class=&quot;blue&quot;&gt;step1&lt;/span&gt;中的解决方式。应该说,这是一种&lt;strong&gt;&amp;quot;绝对路径+相对路径&amp;quot;&lt;/strong&gt;的解决方式。&lt;/p&gt;
&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;step3：上面的方法已经能够解决路径问题，但感觉代码不够优雅。让代码更优雅，我们可以这样做：在根目录(root)下新建一个&lt;span class=&quot;green_bold&quot;&gt;settings.php:&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;
&lt;img style=&quot;border: 0px;&quot; src=&quot;http://www.myleoliu.com/files/image_path_sln2.jpg&quot; alt=&quot;示例2图片&quot; width=&quot;173&quot; height=&quot;205&quot; /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong class=&quot;green_bold&quot;&gt;root/settings.php :&lt;/strong&gt; &lt;/p&gt;
&lt;div id=&quot;code&quot;&gt;
  &lt;span class=&quot;red&quot;&gt;&amp;lt;?php &lt;/span&gt;&lt;br /&gt;
      &lt;span class=&quot;blue&quot;&gt;if&lt;/span&gt;(!defined(ABSPATH)) &lt;br /&gt;
      &lt;span class=&quot;blue&quot;&gt;define&lt;/span&gt;(&lt;span class=&quot;green&quot;&gt;&amp;#8216;ABSPATH&amp;#8217;&lt;/span&gt;,dirname(__FILE__).&lt;span class=&quot;green&quot;&gt;&amp;#8216;/&amp;#8217;&lt;/span&gt;);&lt;br /&gt;
      &lt;span class=&quot;red&quot;&gt;?&amp;gt;&lt;/span&gt; &lt;/div&gt;
&lt;p&gt;      &lt;span class=&quot;green&quot;&gt;&lt;strong&gt;root/app/blog.php&lt;/strong&gt;&lt;/span&gt;中的代码修改为:&lt;/p&gt;
&lt;div id=&quot;code&quot;&gt;
  &lt;span class=&quot;red&quot;&gt;&amp;lt;?php &lt;/span&gt;&lt;br /&gt;
      &lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt; ABSPATH.&lt;span class=&quot;green&quot;&gt;&amp;#8216;lib/smarty/functions.php&amp;#8217;&lt;/span&gt;; &lt;br /&gt;
      &lt;span class=&quot;red&quot;&gt;?&amp;gt;  &lt;/span&gt;&lt;/div&gt;
&lt;p&gt;    同时&lt;span class=&quot;green_bold&quot;&gt;root/index.php&lt;/span&gt;中的代码修改为:&lt;br /&gt;
    &lt;/p&gt;
&lt;div id=&quot;code&quot;&gt;
  &lt;span class=&quot;red&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;
      &lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt;&lt;span class=&quot;green&quot;&gt; &amp;#8217;settings.php&amp;#8217;&lt;/span&gt;; &lt;br /&gt;
      &lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt; ABSPATH.&lt;span class=&quot;green&quot;&gt;&amp;#8216;app/blog.php&amp;#8217;&lt;/span&gt;;&lt;br /&gt;
      &lt;br /&gt;
    $blog=new Blog();&lt;br /&gt;
      &lt;span class=&quot;blue&quot;&gt;echo&lt;/span&gt; $blog-&amp;gt;GetBlogInfo();&lt;br /&gt;
      &lt;span class=&quot;red&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;p align=&quot;left&quot;&gt;仔细考虑一下,如果直接访问&lt;span class=&quot;blue&quot;&gt;http://localhost/root/app/blog.php&lt;/span&gt;又会出现问题:常量ABSPATH没有定义。所以，如果你的程序有直接访问&lt;span class=&quot;blue&quot;&gt;http://localhost/root/app/blog.php&lt;/span&gt;这种情况类似的情况，那么最好直接使用dirname(__FILE__).&lt;span class=&quot;green&quot;&gt;&amp;#8216;/&amp;#8217;&lt;/span&gt;.&lt;span class=&quot;green&quot;&gt;&amp;#8216;相对路径&amp;#8217;&lt;/span&gt;，或者在使用ABSPATH前加一个判断（但这样有点脱裤子放Ｘ的感觉）。&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;strong&gt;注&lt;/strong&gt;:在&lt;span class=&quot;blue&quot;&gt;WordPress&lt;/span&gt;中使用了ABSPATH与dirname(__FILE__).&lt;span class=&quot;green&quot;&gt;&amp;#8216;/&amp;#8217;&lt;/span&gt;.&lt;span class=&quot;green&quot;&gt;&amp;#8216;相对路径&amp;#8217;&lt;/span&gt;相结合的方法,从网站统一入口(&lt;span class=&quot;green_bold&quot;&gt;根目录/index.php&lt;/span&gt;)加载的文件,使用ABSPATH的解决方法(ABSPATH在&lt;em&gt;根目录&lt;span class=&quot;green&quot;&gt;/wp-config-sample.php &lt;/span&gt;&lt;/em&gt;中定义),而那些不直接通过统一入口访问的php文件,WP使用dirname(__FILE__).&lt;span class=&quot;green&quot;&gt;&amp;#8216;/&amp;#8217;&lt;/span&gt;.&lt;span class=&quot;green&quot;&gt;&amp;#8216;相对路径&amp;#8217;&lt;/span&gt;的解决方案。&lt;/p&gt;
&lt;p class=&quot;green_bold style1&quot;&gt;3.设置Apache的include_path参数&lt;/p&gt;
&lt;p&gt;在前面的错误信息中,有一句值得我们注意: &lt;/p&gt;
&lt;p&gt;      &amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;br /&gt;
      Fatal error: require_once() [&lt;span class=&quot;blue&quot;&gt;function.require&lt;/span&gt;]: Failed opening required &amp;#8216;../lib/smarty/functions.php&amp;#8217;&lt;span class=&quot;green_bold&quot;&gt; (include_path=&amp;#8217;.;C:\php5\pear&amp;#8217;)&lt;/span&gt; in T:\Study\PHP_REL\Projects\root\app\blog.php on line 2&lt;br /&gt;
      &amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/p&gt;
&lt;p&gt;      Apache的include_path参数保存的是require/include的读取目录,在上面的错误信息里，include_path包含了两个位置:&lt;br /&gt;
      1) &amp;quot;.&amp;quot;表示从当前文件所在的目录中加载&lt;br /&gt;
      2) &amp;quot;C:\php5\pear&amp;quot;表示从C盘的php5/pear目录下加载。&lt;br /&gt;
      php函数库为我们提供了set_include_path()函数用于设置include_path参数。通过set_include_path()函数,我们可以自定义加载位置（&lt;span class=&quot;blue&quot;&gt;ZendFramework&lt;/span&gt;中就是使用set_include_path()函数来解决路径问题）。&lt;/p&gt;
&lt;p&gt;      下面我们来演示一下如何用set_include_path()函数：&lt;/p&gt;
&lt;p&gt;      &lt;span class=&quot;green_bold&quot;&gt;root/index.php :&lt;/span&gt;&lt;/p&gt;
&lt;div id=&quot;code&quot;&gt;
	  &lt;span class=&quot;red&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;
  set_include_path(&lt;span class=&quot;green&quot;&gt;&amp;#8216;./&amp;#8217;&lt;/span&gt;.PATH_SEPARATOR.dirname(__FILE__));&lt;/p&gt;
&lt;p&gt;
    &lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt; &lt;span class=&quot;green&quot;&gt;&amp;#8216;app/blog.php&amp;#8217;&lt;/span&gt;;&lt;/p&gt;
&lt;p&gt;    $blog = new Blog();&lt;br /&gt;
    &lt;span class=&quot;blue&quot;&gt;echo&lt;/span&gt; $blog-&amp;gt;GetBlogInfo();&lt;br /&gt;
  &lt;span class=&quot;red&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;root/app/blog.php ;&lt;/p&gt;
&lt;div id=&quot;code&quot;&gt;
&lt;span class=&quot;red&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;
      &lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt; &lt;span class=&quot;green&quot;&gt;&amp;#8216;lib/smarty/functions.php&amp;#8217;&lt;/span&gt;;&lt;br /&gt;
      &lt;span class=&quot;red&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;
      &lt;span class=&quot;red&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;
      &lt;span class=&quot;blue&quot;&gt;class&lt;/span&gt; Blog&lt;br /&gt;
      {&lt;br /&gt;
      &lt;span class=&quot;blue&quot;&gt;&amp;nbsp;&amp;nbsp;public&lt;/span&gt; function GetBlogInfo()&lt;br /&gt;
      &amp;nbsp;&amp;nbsp;{&lt;br /&gt;
      &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;blue&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;green&quot;&gt; &amp;#8216;This is a test of blog!&amp;#8217;&lt;/span&gt;;&lt;br /&gt;
      &amp;nbsp;&amp;nbsp;}&lt;br /&gt;
      }&lt;br /&gt;
      &lt;span class=&quot;red&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;
      &lt;span class=&quot;red&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;
      &lt;span class=&quot;blue&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;green&quot;&gt;&amp;#8216;root/app/blog.php loaded successed!&amp;lt;br/&amp;gt;&amp;#8217;&lt;/span&gt;;&lt;br /&gt;
      &lt;span class=&quot;red&quot;&gt;?&amp;gt;&lt;/span&gt;
  &lt;/div&gt;
&lt;p&gt; 测试&lt;span class=&quot;blue&quot;&gt;http://localhost/root/index.php&lt;/span&gt;,运行正常。从&lt;span class=&quot;green_bold&quot;&gt;root/app/blog.php&lt;/span&gt;可以看出，&lt;span class=&quot;blue&quot;&gt;require_once&lt;/span&gt;的路径写法更简洁了（不需要使用ABSPATH或者dirname(__FILE__)）。这种实现方式跟ABSPATH的解决方式一样，需要保证系统有统一的入口点(一般通过&lt;a href=&quot;http://www.myleoliu.com/archives/5.html&quot;&gt;.htaccess文件&lt;/a&gt;实现)。&lt;/p&gt;
&lt;p&gt;当然，解决php路径的方法不止以上几种，网上有很多人提供了针对php路径问题的解决方案，但多数都有一定的适用场景，不能生搬硬套。在下一篇日志中，我会对php路径问题的其他解决方法做一个简单的总结。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.myleoliu.com/archives/6.html/feed</wfw:commentRss><description>初学PHP的时候，我们经常被PHP的绝对路径和相对路径弄的晕头转向。路径问题经常导致include及require命令不能加载到指定的页面，从而导致Web程序运行错误。本文将跟大家一起探讨一下PHP路径问题的常用解决方案。
    下面我们先做一个个简单的示例:



上图是一个简单Web项目的结构图,其中各文件的代码如下:  
root/index.php : 
  

&amp;#60;?php 
    require_once &amp;#8216;app/blog.php&amp;#8217;;
    
    $blog=new Blog();
    echo $blog-&amp;#62;GetBlogInfo();
    ?&amp;#62;
root/app/blog.php : 

  &amp;#60;?php 
    require_once &amp;#8216;../lib/smarty/functions.php&amp;#8217;;
    ?&amp;#62; 
    &amp;#60;?php 
 [...]</description><category>PHP相关</category><category>原创</category><pubDate>Tue, 20 May 2008 12:40:57 +0800</pubDate><author>admin</author><comments>http://www.myleoliu.com/archives/6.html#comments</comments><guid isPermaLink="false">http://www.myleoliu.com/?p=6</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.myleoliu.com/archives/6.html</fs:srclink><fs:srcfeed>http://www.myleoliu.com/feed</fs:srcfeed><fs:itemid>feedsky/myleoliu/~7036392/89389909/5144345</fs:itemid></item><item><title>.htaccess文件简介</title><link>http://item.feedsky.com/~feedsky/myleoliu/~7036392/89389910/5144345/1/item.html</link><content:encoded>&lt;p&gt;前一阵在学习ZendFramework时,在配置.htaccess文件的过程中出了点小问题。现在问题已经解决，在此把.htaccess相关的内容整理了一下：&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:14px;&quot;&gt;1. &lt;span style=&quot;color: #0000ff;&quot;&gt;.htaccess&lt;/span&gt;文件简介&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;.htaccess文件又称为&amp;#8221;分布式配置文件&amp;#8221;,它为我们提供了针对目录改变配置的方法。.htaccess可以做大量的事情，包括：文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表，以及使用其他文件作为index文件。&lt;/p&gt;
&lt;p&gt;以下是Apache指南中关于.htaccess文件的介绍:&lt;/p&gt;
&lt;p&gt;.htaccess文件(或者&amp;#8221;分布式配置文件&amp;#8221;)提供了针对目录改变配置的方法， 即，在一个特定的文档目录中放置一个包含一个或多个指令的文件， 以作用于此目录及其所有子目录。&lt;br /&gt;
说明：&lt;br /&gt;
如果需要使用.htaccess以外的其他文件名，可以用AccessFileName指令来改变。 例如，需要使用.config，则可以在服务器配置文件中按以下方法配置：&lt;br /&gt;
AccessFileName .config&lt;br /&gt;
允许放在这些文件中的指令取决于AllowOverride指令， 此指令按类别决定了.htaccess文件中哪些指令才是有效的。 如果一个指令允许放在.htaccess文件中，则，在Apache手册的说明中，此指令会有一个覆盖段， 其中说明了为使此指令生效而必须在AllowOverride指令中设置的值。&lt;/p&gt;
&lt;p&gt;&amp;#8230;&amp;#8230;.&lt;/p&gt;
&lt;p&gt;更多内容:&lt;a href=&quot;http://www.uplinux.com/download/doc/apache/ApacheManual/howto/htaccess.html&quot;&gt;Apache指南—.htaccess文件&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:14px;&quot;&gt;2. 使用过程中遇到的问题&lt;/span&gt;&lt;br /&gt;
1).htaccess文件的创建&lt;br /&gt;
在使用过程中第一个遇到的问题就是.htaccess文件创建的问题。因为我使用的是Windows操作系统，Windows不允许以正常的方式创建.htaccess。原因很简单，.htaccess只有扩展名。不能以正常的方式创建那么，意味着非正常的方式可以创建：&lt;br /&gt;
a）从网上直接下载一个（从Google或百度里搜索一下）,这是最简单有效的方法，唯一要注意的问题就是小心病毒。在病毒横行的年代，我们要时刻保持警惕。&lt;br /&gt;
b）本人在网上搜了一段VB代码：&lt;/p&gt;
&lt;p style=&quot;font-size: 12px;background-color:#DBFAFF;border:1px solid #BDF6FE;padding:10px;&quot;&gt;Dim fso, f1&lt;br /&gt;
Set fso = CreateObject(&amp;#8221;Scripting.FileSystemObject&amp;#8221;)&lt;br /&gt;
Set f1 = fso.CreateTextFile(&amp;#8221;d:\.htaccess&amp;#8221;, True)&lt;/p&gt;
&lt;p&gt;用记事本创建一个文本文件,将以上三行代码复制到此文本文件。把文本文件的扩展名由.txt改为.vbs，然后双击即可。默认将.htaccess文件保存在D盘根目录,你可以根据自己的需要修改上面的代码。注：必须使用已存在的路径，若路径不存在，则会抛出异常！&lt;/p&gt;
&lt;p&gt;2).htaccess文件的使用&lt;br /&gt;
使用zendframework时,需要在根目录下建一个.htaccess文件,并创建如下内容:&lt;/p&gt;
&lt;p style=&quot;font-size: 12px;background-color:#DBFAFF;border:1px solid #BDF6FE;padding:10px;&quot;&gt;RewriteEngine on&lt;br /&gt;
RewriteRule .* index.php&lt;br /&gt;
php_flag magic_quotes_gpc off&lt;br /&gt;
php_flag register_globals off
&lt;/p&gt;
&lt;p&gt;然后在php.ini中AllowOverride 设置为 All&lt;/p&gt;
&lt;p&gt;以上设置的目的是使所有请求都重定向到index.php,由index.php来处理所有请求（为什么这样做，我会在其他文章中介绍）。但设置完成后，无论我访问任何页面，都会报错：&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;&lt;br /&gt;
Internal Server Error&lt;br /&gt;
The server encountered an internal error or misconfiguration and was unable to complete your request.&lt;/p&gt;
&lt;p&gt;Please contact the server administrator, &lt;a href=&quot;mailto:myleoliu@gmail.com&quot;&gt;myleoliu@gmail.com&lt;/a&gt; and inform them of the time the error occurred, and anything you might have done that may have caused the error.&lt;/p&gt;
&lt;p&gt;More information about this error may be available in the server error log.&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;/p&gt;
&lt;p&gt;查看Apache的日志，发现如下错误&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;&lt;br /&gt;
[Sat May 15 14:45:43 2008] [alert] [client 127.0.0.1] E:/Projects/BS/PHP/zendtest/.htaccess: Invalid command &amp;#8216;RewriteEngine&amp;#8217;, perhaps misspelled or defined by a module not included in the server configuration&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;&lt;br /&gt;
原来是模块rewrite_module 没有加载（apache默认是不加载此模块），在httpd.config中,将#LoadModule rewrite_module modules/mod_rewrite.so前面的#去掉。然后保存、重启Apache，问题解决。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.myleoliu.com/archives/5.html/feed</wfw:commentRss><description>前一阵在学习ZendFramework时,在配置.htaccess文件的过程中出了点小问题。现在问题已经解决，在此把.htaccess相关的内容整理了一下：
1. .htaccess文件简介

.htaccess文件又称为&quot;分布式配置文件&quot;,它为我们提供了针对目录改变配置的方法。.htaccess可以做大量的事情，包括：文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表，以及使用其他文件作为index文件。

以下是Apache指南中关于.htaccess文件的介绍:

.htaccess文件(或者&quot;分布式配置文件&quot;)提供了针对目录改变配置的方法， 即，在一个特定的文档目录中放置一个包含一个或多个指令的文件， 以作用于此目录及其所有子目录。
说明：
如果需要使用.htaccess以外的其他文件名，可以用AccessFileName指令来改变。 例如，需要使用.config，则可以在服务器配置文件中按以下方法配置：
AccessFileName .config 
允许放在这些文件中的指令取决于AllowOverride指令， 此指令按类别决定了.htaccess文件中哪些指令才是有效的。 如果一个指令允许放在.htaccess文件中，则，在Apache手册的说明中，此指令会有一个覆盖段， 其中说明了为使此指令生效而必须在AllowOverride指令中设置的值。

.......</description><category>PHP相关</category><category>原创</category><pubDate>Sat, 17 May 2008 19:42:17 +0800</pubDate><author>admin</author><comments>http://www.myleoliu.com/archives/5.html#comments</comments><guid isPermaLink="false">http://www.myleoliu.com/?p=5</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.myleoliu.com/archives/5.html</fs:srclink><fs:srcfeed>http://www.myleoliu.com/feed</fs:srcfeed><fs:itemid>feedsky/myleoliu/~7036392/89389910/5144345</fs:itemid></item><item><title>成龙-生死不离</title><link>http://item.feedsky.com/~feedsky/myleoliu/~7036392/89389911/5144345/1/item.html</link><content:encoded>&lt;h1 style=&quot;text-align: center;&quot;&gt;成龙-生死不离&lt;/h1&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;  &lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt; 抗震救灾公益歌曲&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;作词：王平久　 作曲：舒楠　　演唱：成龙&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;510&quot; height=&quot;420&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#000000&quot; /&gt;&lt;param name=&quot;flashvars&quot; value=&quot;type=Singleton&amp;amp;domain=inner&amp;amp;skin=0&amp;amp;flv=http://data.vod.sohu.com/20080516/665eee9b-aab7-4731-9caa-5d9ad2e60fbaV.flv&amp;amp;cover=&amp;amp;autoPlay=false&amp;amp;recommend=http://s.sohu.com/20080517/n256910727_news.shtml&amp;amp;pageUrl=http://s.sohu.com/20080517/n256910727.shtml&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;http://news.sohu.com/player/20080516/Main.swf&quot; /&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; width=&quot;510&quot; height=&quot;420&quot; src=&quot;http://news.sohu.com/player/20080516/Main.swf&quot; flashvars=&quot;type=Singleton&amp;amp;domain=inner&amp;amp;skin=0&amp;amp;flv=http://data.vod.sohu.com/20080516/665eee9b-aab7-4731-9caa-5d9ad2e60fbaV.flv&amp;amp;cover=&amp;amp;autoPlay=false&amp;amp;recommend=http://s.sohu.com/20080517/n256910727_news.shtml&amp;amp;pageUrl=http://s.sohu.com/20080517/n256910727.shtml&quot; bgcolor=&quot;#000000&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.myleoliu.com/archives/4.html/feed</wfw:commentRss><description>成龙-生死不离
  
 抗震救灾公益歌曲
作词：王平久　 作曲：舒楠　　演唱：成龙</description><category>抗震救灾</category><category>未分类</category><pubDate>Sat, 17 May 2008 11:43:43 +0800</pubDate><author>admin</author><comments>http://www.myleoliu.com/archives/4.html#comments</comments><guid isPermaLink="false">http://www.myleoliu.com/?p=4</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.myleoliu.com/archives/4.html</fs:srclink><fs:srcfeed>http://www.myleoliu.com/feed</fs:srcfeed><fs:itemid>feedsky/myleoliu/~7036392/89389911/5144345</fs:itemid></item><item><title>第一篇博客</title><link>http://item.feedsky.com/~feedsky/myleoliu/~7036392/89389912/5144345/1/item.html</link><content:encoded>&lt;p&gt;很久之前就有人忽悠我开博客了，但工作原因，一直没有时间。现在项目告一段落了，终于可以拿出时间来写一点东西，记录一下自己这段时间学到东西。&lt;/p&gt;
&lt;p&gt;我是个程序员，更确切的说，应该是个“人肉代码生成器”。平时的工作自然就是生成由26个字母和一堆符号组成的代码。我是一个从美工起家的程序员，从大一到大三一直都在做界面生成器（网页，喷绘，封面，logo&amp;#8230;&amp;#8230;什么都做，没办法，领导需要你做什么，你就要会什么)，平面设计做累了，就开始学写程序，起初只是想玩玩，没想到却成了我现在的饭碗。记得我写的一个程序是用C#写的一个爬虫下载器（自动搜索并下载图片），当时看到蓝色理想由很多不错的图片素材（20000多张），实在懒得一张张下了，于是就写了那个程序，结果一个晚上下了5Gb的图片。从此，我被程序设计所勾引，一发不可收拾。从最初的界面、逻辑、数据访问写在一块的垃圾代码，到三层程序架构、mvc、设计模式、IOC、Plugin体系，从asp到asp.net 再到php&amp;#8230;&amp;#8230;.每一次成长都让我欣喜若狂。&lt;/p&gt;
&lt;p&gt;我现在还是个普通的IT民工，所以现阶段还只能幻想着有房、有车的生活。为了过上自己想要的生活，我会一直努力下去。现在的我可以不成功，但不能不进步。&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.myleoliu.com/archives/3.html/feed</wfw:commentRss><description>很久之前就有人忽悠我开博客了，但工作原因，一直没有时间。现在项目告一段落了，终于可以拿出时间来写一点东西，记录一下自己这段时间学到东西。
我是个程序员，更确切的说，应该是个“人肉代码生成器”。平时的工作自然就是生成由26个字母和一堆符号组成的代码。我是一个从美工起家的程序员，从大一到大三一直都在做界面生成器（网页，喷绘，封面，logo&amp;#8230;&amp;#8230;什么都做，没办法，领导需要你做什么，你就要会什么)，平面设计做累了，就开始学写程序，起初只是想玩玩，没想到却成了我现在的饭碗。记得我写的一个程序是用C#写的一个爬虫下载器（自动搜索并下载图片），当时看到蓝色理想由很多不错的图片素材（20000多张），实在懒得一张张下了，于是就写了那个程序，结果一个晚上下了5Gb的图片。从此，我被程序设计所勾引，一发不可收拾。从最初的界面、逻辑、数据访问写在一块的垃圾代码，到三层程序架构、mvc、设计模式、IOC、Plugin体系，从asp到asp.net 再到php&amp;#8230;&amp;#8230;.每一次成长都让我欣喜若狂。
我现在还是个普通的IT民工，所以现阶段还只能幻想着有房、有车的生活。为了过上自己想要的生活，我会一直努力下去。现在的我可以不成功，但不能不进步。</description><category>生活</category><category>杂谈</category><pubDate>Sat, 10 May 2008 00:27:46 +0800</pubDate><author>admin</author><comments>http://www.myleoliu.com/archives/3.html#comments</comments><guid isPermaLink="false">http://www.myleoliu.com/?p=3</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.myleoliu.com/archives/3.html</fs:srclink><fs:srcfeed>http://www.myleoliu.com/feed</fs:srcfeed><fs:itemid>feedsky/myleoliu/~7036392/89389912/5144345</fs:itemid></item></channel></rss>