<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[敏而好学 —— Eric6的专栏]]></title><description><![CDATA[Hello World~ Welcome To Eric Liu's Blog]]></description><link>https://blog.youkuaiyun.com/Eric6</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Eric6]]></copyright><item><title><![CDATA[本博客已停止更新，搬家至博客园，sorry...]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/6201107</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/6201107</guid><author>Eric6</author><pubDate>Tue, 22 Feb 2011 22:08:00 +0800</pubDate><description><![CDATA[<br />新的地址请访问： http://www.cnblogs.com/eric6/    谢谢~]]></description><category></category></item><item><title><![CDATA[【小结】JavaScript函数定义的一些注意事项]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/6138511</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/6138511</guid><author>Eric6</author><pubDate>Fri, 14 Jan 2011 14:03:00 +0800</pubDate><description><![CDATA[1. 函数声明的同时JS引擎还定义了一个与函数名同名的变量，我们在调用这个函数的时候实际上是在使用这个变量，且它可以在函数声明之前调用。2. 函数表达式，此时将匿名函数赋值给了一变量，此变量需在定义后使用。3. 函数表达式(with函数名)，这种用法最好避免，此时非IE浏览器中该函数名只在内部可用。4. 用Function构造函数定义，这种方式效率低，每次执行函数的时候，其函数体都会被解析一次。此外这样声明的函数是不会继承当前声明位置的作用域，它默认只会拥有全局作用域...]]></description><category></category></item><item><title><![CDATA[Time flies... 小结下2010]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/6137485</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/6137485</guid><author>Eric6</author><pubDate>Fri, 14 Jan 2011 09:50:00 +0800</pubDate><description><![CDATA[总的来说，我的2010就是浮躁的一年，浮躁之余留下的东西并不多。
1. 要时刻关注相关的信息动态，以免错失机会。就拿找工作来说，对于应届毕业生来说其实是有优势的，因为这个时候有许多校园招聘，这能够以相对较低的门槛进入一家大公司。可我却错过了。。。
2. 关于找工作。最好应该事先定好几家公司，充分了解、认准目标后再行动，而不是盲目的投简历，以免发生我的悲剧，一家看似看专业的公司，进去才发现不但公司技术水平很次，并且很不人性化。
3. 自己的财物要很小心的看护好。我大四的时候在学校附近的一家小公司上班，月]]></description><category></category></item><item><title><![CDATA[有一种很奇怪的精神叫“加班”...?]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/6069867</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/6069867</guid><author>Eric6</author><pubDate>Sat, 11 Dec 2010 18:04:00 +0800</pubDate><description><![CDATA[很久都没有写文章了，如果博客是个园子，现在肯定杂草丛生了。。。 最近工作很忙，一直在加班，其实说实话也没有忙到没时间学习、没时间写博客，但就是这么奇怪，感觉自从毕业后就变懒了，对技术的追求也没有原来那么热情了，“逆水行舟，不进则退”这道理我当然也懂，可就是觉得有心无力。。。 但很奇怪的是对工作我还是很认真的，再大的难题也都能一一解决，即使加班一直是无偿的，可还是很拼命。
于是我想，为什么不把自己学习的时候看作是在加班呢，如果能拿出加班一半的干劲来学习，现状肯定会大大改善，自身的学习带来的价值是毋庸置疑的。]]></description><category></category></item><item><title><![CDATA[PHP工程师面临的成长瓶颈]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5955873</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5955873</guid><author>Eric6</author><pubDate>Thu, 21 Oct 2010 10:14:00 +0800</pubDate><description><![CDATA[作为Web开发中应用最广泛的语言之一，PHP有着大量的粉丝，那么你是一名优秀的程序员吗？在进行自我修炼的同时，你是否想过面对各种各样的问题，我该如何突破自身的瓶颈，以便更好的发展呢？本文作者会给您一些不错的建议，希望对您有所帮助。]]></description><category></category></item><item><title><![CDATA[Xdebug + Eclipse 单步跟踪调试PHP代码]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5932029</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5932029</guid><author>Eric6</author><pubDate>Sun, 10 Oct 2010 21:30:00 +0800</pubDate><description><![CDATA[工具介绍：
1. Xdebug
Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具)，相当强大，它可以用来跟踪，调试和分析PHP程序的运行状况。Xdebug现在的最新版本是Xdebug 2.1.0, 下载页面是 http://xdebug.org/download.php，注意页面中下载链接有多个(如下图)，要根据自己的计算机位数以及PHP版本来选择，搞清楚自己的PHP的版本以及是否线程安全(通过phpinfo函数查看)，PHP5.3版本的用户还要知道自己的PHP是由哪种编译器编译的以]]></description><category></category></item><item><title><![CDATA[PHP的iconv()函数遇到的错误: Detected an illegal character in input string ...]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5899914</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5899914</guid><author>Eric6</author><pubDate>Tue, 21 Sep 2010 18:14:00 +0800</pubDate><description><![CDATA[用iconv()转换一个输出字符编码不支持的字符时，如iconv('UTF-8', 'GB2312', '囧')，会遇到这样的错误提示：
Notice: iconv() [function.iconv]: Detected an illegal character in input string ...
因为GB2312表示的是简体中文，不支持像"囧"之类的更为复杂的汉字以及一些特殊字符，这当然会报错了，解决办法有两种：
1. 扩大输出字符编码的范围...]]></description><category></category></item><item><title><![CDATA[PHP静态方法的几个注意事项]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5896658</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5896658</guid><author>Eric6</author><pubDate>Mon, 20 Sep 2010 12:19:00 +0800</pubDate><description><![CDATA[1. 即使类中的方法并未用static声明，但其未使用到可改变的类成员变量，在外部仍可用操作符::来调用；
2. 以静态方式(用::操作符)调用的方法中$this的取值是由调用时的上下文决定的!而不是定义他的类!!
例如以下的代码...]]></description><category></category></item><item><title><![CDATA[【小结】面向对象设计的几个基本原则]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5893950</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5893950</guid><author>Eric6</author><pubDate>Sun, 19 Sep 2010 10:44:00 +0800</pubDate><description><![CDATA[最近在看《大话设计模式》，现将书里看到的一些面向对象设计的原则小结下~
单一职责原则
就一个类而言，应该仅有一个引起它变化的原因；
例子：手机的过多功能违反了单一职责原则；
如果一个类承担的职责过多，就等于把这些职责耦合在一起，一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计，当变化发生时，设计会遭受到意想不到的破坏；
软件设计真正要做的许多内容，就是发现职责并把那些职责相互分离。要去判断是否应该分离出类来，也不难，那就是如果你能够想到多于一个的动机去改变一个类，]]></description><category></category></item><item><title><![CDATA[【小结】PHP之文档注释规范PHPDoc]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5888894</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5888894</guid><author>Eric6</author><pubDate>Thu, 16 Sep 2010 17:08:00 +0800</pubDate><description><![CDATA[良好的文档注释不但能使代码易于维护，而且可以通过phpDocumentor等文档生成工具生成项目手册，以便于查阅。此外PHP的弱类型特征更应该引起我们对文档注释的重视！
本文简单的介绍下PHPDoc文档注释，以及常用的一些标签。
1. 文档注释并不只是用来注释整个文件的，在元素前面声明之后，它可以和该特定的程序元素相关联，例如类、函数、常量、变量、方法等等，以/**开头、*/结束，注意注释与相关联的程序元素间不能有空行；
2. 常用的标签...]]></description><category></category></item><item><title><![CDATA[iFrame应用实例讲解——页面无需刷新的异步文件上传！]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5866272</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5866272</guid><author>Eric6</author><pubDate>Mon, 06 Sep 2010 14:39:00 +0800</pubDate><description><![CDATA[说到iframe，现在用它的人是越来越少了，并且很多人都相信它应该被AJAX所取代，的确如此，因为AJAX太出色了。
不过有一种情况的实现我还是选择了iframe，这就是本文要说的文件的异步上传，感兴趣的可以试试，如果用原生的AJAX来实现应该是要复杂的多。
先来给初学者补补基础知识：
1. 在iframe标签一般会指定其name特性以于标识；
2. 在form表单中通过action(目标地址)和target(目标窗口，默认为_self)来确定提交的目的地...]]></description><category></category></item><item><title><![CDATA[【小结】Essential PHP Security - PHP安全基础 (学习小结)]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5865730</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5865730</guid><author>Eric6</author><pubDate>Mon, 06 Sep 2010 10:32:00 +0800</pubDate><description><![CDATA[Essential PHP Security - PHP安全基础  译文地址：http://bbs.phpchina.com/viewthread.php?tid=3192
1. 深度防范原则的必要性，坚持过滤输入，即使是数据库里的数据；
2. 降低敏感数据的暴露频率；
3. 如果开启了register_globals，任何使用未初始化变量的行为就意味着安全漏洞；
4. 网站上线后，要关闭display_errors、打开log_errors，也可通过set_error_handler()定制自己的]]></description><category></category></item><item><title><![CDATA[JavaScript 模态窗口的使用及传值：window.showModalDialog 和window.showModalessDialog]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5853563</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5853563</guid><author>Eric6</author><pubDate>Tue, 31 Aug 2010 16:33:00 +0800</pubDate><description><![CDATA[JavaScript 的window 对象提供的两个方法，用于新建一个(非)模态窗口，这是一个很朴素的窗口，虽然难看但却相当方便实用。方便之处在于往打开的新窗口中传数据，且在关闭了窗口后，原来的窗口也能轻易地接收到返回的数据。
window.showModalDialog 和window.showModalessDialog 的区别仅仅是前者打开的是模态窗口，而后者打开的是非模态窗口，两个函数的用法是一模一样的（模态指它始终处在最前端，在关闭它之前无法对父窗口进行操作）。
window.showModa]]></description><category></category></item><item><title><![CDATA[Zend Framework 与Smarty 的完美整合!]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5849189</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5849189</guid><author>Eric6</author><pubDate>Mon, 30 Aug 2010 10:58:00 +0800</pubDate><description><![CDATA[废话就不说了，思路是这样的：
1. 先把smarty 类库引入项目目录中，建立好smarty 所需要的一些目录（编译目录、缓存目录等）；
2. 在library 目录下新建一个文件Templater.php，这个文件中的Templater 类即是采用smarty 后的新的视图类，它继承自Zend_View_Abstract，注意在这个类中要根据smarty 的操作规则重写Zend_View_Abstract 的一些方法，这样的话，在控制器中我们还是使用Zend_View_Abstract 的视图操作方式]]></description><category></category></item><item><title><![CDATA[JSON 的标准：双引号而非单引号！]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5841462</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5841462</guid><author>Eric6</author><pubDate>Thu, 26 Aug 2010 17:37:00 +0800</pubDate><description><![CDATA[大家知道PHP 版本自从5.2.0 之后添加了两个支持json 的函数，分别是json_encode 和json_decode，其中json_decode 函数是把json 字符串转换为json 对象，如上例所示。但上面的例子的输出却为null，即转换失败了。这究竟是为什么呢，baidu 了一下，有人说是PHP 的这两个函数对json 的支持不够完全导致的，解决办法是把单引号改成双引号就行了，可这真的是PHP 的一个失误吗？...]]></description><category></category></item><item><title><![CDATA[【小结】WordPress 代码高度显示插件SyntaxHighlighter Evolved 的优缺点小结]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5832201</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5832201</guid><author>Eric6</author><pubDate>Mon, 23 Aug 2010 16:08:00 +0800</pubDate><description><![CDATA[今天想为新建的wordpress 博客安装个代码高亮显示的插件，在网上一搜发现确实有不少，几经比较和测试之后最终选择了SyntaxHighlighter Evolved。另外Syntax Highlighter and Code Colorizer 也是不错的，不过当插入像这样的特殊标签还是要手动转义，我是觉得很麻烦，最终只好放弃。。。以下是我总结的 SyntaxHighlighter Evolved 的一些优缺点：
优点：不需要手动转义特殊代码、后台配有强大的定制面板；
缺点：在Firefox下发表时]]></description><category></category></item><item><title><![CDATA[JavaScript 实用效果 - 导航区域跟随窗口滚动!]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5826224</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5826224</guid><author>Eric6</author><pubDate>Fri, 20 Aug 2010 12:23:00 +0800</pubDate><description><![CDATA[我们经常可以看到这样的页面，页面的主体部分采用左右布局，靠左的为导航，靠右的为页面主要内容。而当左边的导航高度不够、而右边的内容很多时，页面往下拉会发现左边空出了一大块，导致主体内容显得窄小且页面整体不对称，如下图：
解决的办法之一是在窗口滚动时，左边的区域也跟着一起移动，这不但解决了上述问题，也一定程度上地增强了用户体验，因为此时用户能够随时地导航到其他页面而不需要回到页面顶部...]]></description><category></category></item><item><title><![CDATA[【总结】回车换行符/r/n 的区别与来历，原来如此。。]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5803328</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5803328</guid><author>Eric6</author><pubDate>Wed, 11 Aug 2010 10:46:00 +0800</pubDate><description><![CDATA[有看过《辛德勒的名单》的朋友应该记得有这么个场景，当时辛德勒想招一个打字员，一个胖胖的妇女前来面试，打字飞快。不知道大家有没有注意，她每打完一行都要手动将打字机的针头移回至行首，然后再移至下一行继续，这其实就是“回车(carriage Return)、换行(Next line)”的来历，很形象吧。
此外在计算机还没有出现之前，有一种叫做电传打字机(Teletype Model 33)的玩意，每秒钟可以打10个字符。但是它有一个问题，就是打完一行换行的时候，要用去0.2秒，正好可以打两个字符。要是在这0.2]]></description><category></category></item><item><title><![CDATA[【小结】jQuery 对复选框checkbox 值的获取]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5802201</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5802201</guid><author>Eric6</author><pubDate>Tue, 10 Aug 2010 18:03:00 +0800</pubDate><description><![CDATA[1
    2
    3

1. 获取第一个选中的value 值：

    $('input[name="test"]:checked').val() ...

2. 获取每一个选中的值（貌似只能通过遍历？）：

    $('input[name="test"]').each(function(){
        if (this.checked) $(this).val() ...
    });]]></description><category></category></item><item><title><![CDATA[PHP调用Oracle存储过程时的错误：ORA-06502: PL/SQL: numeric or value error: character string buffer too small]]></title><link>https://blog.youkuaiyun.com/Eric6/article/details/5801704</link><guid>https://blog.youkuaiyun.com/Eric6/article/details/5801704</guid><author>Eric6</author><pubDate>Tue, 10 Aug 2010 15:44:00 +0800</pubDate><description><![CDATA[刚刚试着用PHP 的oci8 函数集去调用一个存储过程时总是查询失败且返回以下错误，很是郁闷。。
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
后来发现是在使用oci_bind_by_name() 函数时没有为绑定的输出变量预先分配好存储的缓冲区大小，例如：]]></description><category></category></item></channel></rss>