2009年04月15日

我从事了6年多的编程工作,在这之前做了将近2年的纯HTML+CSS的网页制作和设计。本博客很多次提到的EmEditor,是一款简洁实用的文本工具。对于PHP编程有十分好的支持,几乎到了完美。我的PHP首选编程工具是EmEditor,使用EmEditor做PHP编程,几乎不用再用其它的文本工具。对于PHP编程,EmEditor有这些优点:

  1. 查找功能十分好,在一个文件里,相同的关键词会用绿色高亮显示,这个功能对于编程来说是十分重要的。查找和替换功能,支持回车符,回车符用\n表示。
  2. 分割窗口。分割窗口的作用是可以不移动光标,而在另一个窗口查看同一个程序的其它“段落”,这个功能非常常用。EmEditor按F12,同一个文件文件可以分成4个窗口来看。我从来都没有需要使用4个窗口来看,2个窗口很常用。方法是按F12,然后把鼠标拖动到窗口的最下方,则以纵向的方式分割窗口;把鼠标拖动到窗口的最右方,则以横向的方式分割窗口。
  3. 在PHP程序里,如果网页使用UTF-8格式和语言,BOM(Unicode签名)有一些障碍,所以需要去掉BOM。这些障碍包括如果被include的文件中有BOM,会出现多余的空行;使用header()函数PHP程序会报错,解决方法如http://www.auiou.com/relevant/00000469.jsp
    EmEditor去掉BOM的方法,十分容易,甚至比UltraEdit还要容易。以较新版本的UltraEdit 14.20.1.1000为例,如果你的PHP文件是UTF-8格式,使用UltraEdit另存为、去掉BOM之后,下次再打开这个PHP文件,是以ANSI格式打开,如果这时候在UltraEdit按Ctrl+S,文件格式则会变为ANSI格式。(如果此PHP文件中含有一个或以上的全角字符,则不存在此问题。)
    EmEditor则容易很多,只要按Alt+回车,选择“文件”的标签,在“打开时的字符码”,选择“UTF-8”,然后关闭EmEditor。以后打开任何PHP文件,只要按Ctrl+S,就可以保存为UTF-8编码的无BOM文件。去掉UTF-8文件的BOM的方法详细请见我写的这篇http://www.auiou.com/relevant/00000470.jsp
  4. 关于程序的行号。EmEditor早期的版本没有显示行号,但是可以按Ctrl+G,可以看到当前的行号,我经常是使用这个方法。较新的EmEditor版本,有显示行号的功能。即使有像EditPlus和UltraEdit的显示行号功能,在实际编程中我也是极少看行号,因为如果在某一行插入一行,它后面的行号全部都会变,所以这样查看行号的意义不大。
  5. 常用的程序和代码,在本地建立一个文本文件,把常用的PHP语句、函数,小段的程序,都复制在这里。平时需要用到的时候,从这里复制程序,建立一个自己的“PHP手册”。

我使用的EmEditor是2002年早期的3.28版本,一直使用到现在。2001年的3.17版本,我当时也使用了很长时间。现在最新的版本是8.04,有网友问我为什么使用早期的版本,因为早期的版本可以打开多个软件窗口,现在的新版本不可以,所有用新版本的EmEditor打开的文件,都是在同一个软件窗口里。还是老版本好用。

总之,EmEditor是一款相当好的适于PHP编程的文本工具,它的安装文件和安装目录只有1兆多~3兆多。

写于 2009年04月14日 12:22

把写在网页较前的位置,在之前尽量不要加载数据库,也就是数据库的调用尽量写在之后。这样可以优先加载title,用户端也可以更快地看到网页标题。

如果加载title之后,网页也较快地加载,说明程序、服务器、网速都快;
如果网页打开较慢,在服务器做一个简单的html页测试网速。如果测试页打开慢的话,说明服务器的带宽资源不足或者服务器慢,或者自己这边的网速慢。如果测试页打开快的话,如果程序加载title之后,网页加载较慢,说明程序慢,或者服务器慢,或者带宽不足。

写于 2009年04月09日 12:15

如果网页使用了DIV+CSS结构,正文放在左边,侧导航栏放在右边,是更为理想的布局。因为在用户端浏览网页的时候,程序和HTML代码,都是从上到下加载。相应的DIV+CSS结构,也是从左到右读取。左边的内容,优先读取。

如果侧导航栏的内容不是很多,或者不考虑优先加载正文的因素,侧导航栏放在左右均可。

写于 2009年03月27日 09:01

EmEditor软件,先打开任意一个PHP文件,按Alt+回车,选择“文件”的标签,在“打开时的字符码”,选择“UTF-8”,然后关闭EmEditor。以后打开任何PHP文件,只要按Ctrl+S,就可以保存为UTF-8编码的无BOM文件,十分方便。

UltraEdit可以点击“文件→另存为”,格式选择“UTF-8无BOM”,英文网页每次都需要这个操作。否则,在按Ctrl+S时,会被保存为ANSI格式。中文网页,在第一次另存为之后,以后只要按Ctrl+S即可。

EmEditor也可以用同样的方法,“文件→另存为”,字符码选择“UTF-8”,去掉“加入 Unicode 署名”前面的勾,英文网页每次都需要这个操作。同样,中文网页,在第一次另存为之后,以后只要按Ctrl+S即可。EmEditor建议按照第一段文字的方法设置,以后无需每次都使用“另存为”。

写于 2009年03月25日 10:56

2009年04月12日

有网友在论坛问到,对比自己大五、六岁的部门老大,怎样称呼?讲礼貌,信因果,使用尊称。可以根据当地的实际情况使用尊称,比如“经理”,或者“×经理”,或者×兄,×哥,×姐,×先生,×师傅;如果是在医院,称呼×大夫;如果是在学校,称呼×老师。等等。如果实在觉得别扭,称呼老×。

比自己年长的人,避免直呼姓名,抛开职场潜规则,抛开金钱与地位,金钱和地位都是幻象。也不要看着别人怎样称呼,自己也跟着称呼,口业就是从这里造的。宁可对年长者暂时没有称呼,也不要直呼姓名。对年长者直呼姓名,会让人心里不舒服,人家也不会从心里尊敬你。在中国的古代,皇帝对百姓都不直呼姓名,而是称呼字。即使对方不是部门的老大,即使是普通职位的同事,也要用尊称,以年龄为准。如果下属比上司年龄大,上司也需要对下属使用尊称。

讲美德才会有真智慧,真素质。对别人尊敬,不会降低自己的身份,只会提高自己的功德。别人会加倍尊敬你,有好事的时候,人家会想到你,人家总是会打心里祝福你成功,连外国人也会尊敬你。如果对别人不尊重,人家表面上没有在意,心里清楚得很,因果丝毫都不会差。如果有的年长者说不在意,很多人是在说谎,没有说真话。

人人平等不是体现在直呼姓名上,而是体现在互相尊重上。

写于 2009年03月17日 18:50

如果一个程序有几十行、几百行,如果程序套用3层以上的大括号,检查某个大括号的开始位置,需要花费很多的时间。可以先在本地硬盘制作一个工具,将{替换为{←←!!!,将}替换为!!!→→},如下图:

然后把输出的带有这些特殊符号的程序复制到桌面的一个文件例如5.php,使用文本工具EmEditor打开。然后查找!!!,因为相同的查找关键词EmEditor会用绿色高亮显示,所以查找起来会方便很多,一目了然,如下图:

然后先将内层的大括号从开始到结束部分删除。如下图,先将其选中,然后删除:

最后可以找到,最外层的大括号的开始处是if ($acf)这句。

当然,即使不使用EmEditor的高亮显示查找功能,将{替换为{■←←!!!,将}替换为!!!→→■},使用黑色的方块,会使程序的大括号位置查找起来更加清晰,如下图:

写于 2009年02月22日 12:48

有位网友提到,网页编码选择GB2312还是UTF-8好?正好我的博客也想谈这方面的话题,在此做一讨论。

  1. 在速度方面,中文网页使用GB2312语言,英文网页使用UTF-8语言(或GB2312,但一般英文网页不用GB2312)会有理想的速度。这是因为在网页文件里,GB2312语言(ANSI文件编码)一个全角字符占2个字节,UTF-8语言(UTF-8文件编码)一个全角字符占3个字节。半角字符在ANSI编码和UTF-8编码中,均占一个字节。
    英文网页不用GB2312语言的原因是,有一些国外用户的浏览器可能需要安装语言包。
    如之前的讨论,http://www.auiou.com/relevant/00000433.jsp,如果中文网页使用UTF-8语言,会多占用一些服务器的CPU、内存、硬盘资源,速度会稍稍慢一点。如果网站的访问量很大,需要考虑一下这方面的因素,中文网页使用GB2312语言大约能提升10%~30%的性能,访问速度也会更快一些。
  2. 如果网站的访问量不大,每天500IP以下,中文网页使用GB2312或者UTF-8均可。

因此,最佳的方案是:中文网页使用GB2312语言,英文网页使用UTF-8语言。

写于 2009年02月19日 20:18

用户发送的表单域中,例如PHP可以使用$_SERVER['HTTP_REFERER']判断post的来源,如果用户是通过本地硬盘的网页,则来源为False。例如编写:

$auf=$_SERVER['HTTP_REFERER'];
if ($auf){
// 用户留言写入数据库
}

或者从$auf的值中提取出某些字符串,使其符合一定的条件,再判断用户留言是否写入数据库。为保险起见,也可以再使用一个隐含的表单域<input>,使其为隐含的“验证码”。双重保险,这样可以减少spam。

写于 2009年02月15日 22:37

2009年03月21日

英文网页的字体较常用到em单位,可使字体随IE浏览器的字体设置而变化。原先定义的px和pt单位,可以使用我制作的一个工具直接转化为相对应的em单位,http://www.auiou.com/relevant/00000430.jsp

如果一个区域的字体以em为单位,被重复定义了2次或2次以上,字体大小会出现混乱,可以嵌入一个表格<table>,将这个区域的字体放在表格中,即可避免字体被重复定义。如果<td>元素在CSS表头中已经定义字体,可以再对这个区域的<td>进行定义,会替换表头的定义,而浏览器不认为这是重复定义。

重复定义的情况如:

<span style="font-size:0.75em">
<div>
<ul>
<li style="font-size:0.9em">段落文字
</ul>
</div>
</span>

<li>元素中的字体被重复定义2次,被定义为0.75em×0.9=0.675em。

这样即可避免被重复定义:

<span style="font-size:0.75em">
<div>
<ul>
<li>
<table cellspacing="0" cellpadding="0"><tr><td style="font-size:0.875em">段落文字</tr></td></table>
</ul>
</div>
</span>

或者先将<span>元素使用</span>闭合。

写于 2009年02月12日 22:04

我用过的文本工具主要是EmEditor、EditPlus、UltraEdit这3款,最早不知道这些文本工具的时候我使用记事本,这3款文本工具的功能都比记事本强大、便捷许多。没有一款文本工具是完美的,总是各有各的优点和不足。

EmEditor

我一直在推荐EmEditor,我也一直使用早期的3.28版本。我大概是从2002年开始使用EmEditor,至今,一直是我的系统必备软件。EmEditor的优点是查找功能十分好,在一个文件里,相同的关键词会用绿色高亮显示,这个功能对于编程来说是十分重要的。EditPlus和UltraEdit均没有相同的关键词高亮显示的功能,在程序里进行查找的时候,我总是需要用到EmEditor。EmEditor 3.28版本没有显示程序的行号,这对我来说并不重要,需要的时候我经常用Ctrl+G来查看行号,它会自动跳到那一行的程序,已经十分习惯了。EditPlus、UltraEdit都有行号显示的功能,我平时较少看左边的行号。每一个回行EmEditor均是用↓表示,在程序里看起来十分方便。

EmEditor和EditPlus的不足是,如果一个网页程序的文件里全部是半角的英文字符,例如英文网页,如果文件是UTF-8编码,去掉了Unicode签名(BOM),使用EmEditor或EditPlus打开,按Ctrl+S直接保存之后文件会变成ANSI编码。必须使用另存为的方式,再选择编码格式为UTF-8,每次都需要这样,很繁琐。EmEditor 3.28版本在另存为的时候,可以去掉Unicode签名,EditPlus 2.11版本不可以去掉Unicode签名。如果一个程序文件是UTF-8编码,当中含有全角字符的话,去掉了Unicode签名(BOM),使用EmEditor或EditPlus直接按Ctrl+S保存,文件格式都是UTF-8编码,都没有问题,同时Unicode签名(BOM)的有无状态也不会改变。因此,不妨尝试将一些完全没有全角字符的英文网页或者include文件文件编码使用ANSI格式,这样不会产生Unicode签名,有全角字符的文件则使用UTF-8编码,并去掉Unicode签名,meta的语言声明仍是UTF-8,不妨一试,很可能不会产生问题。但我还是喜欢meta和文件编码均使用UTF-8,以后不会遇到意外的乱码的问题。

EditPlus

2003年的时候,剪子兄推荐EditPlus给我。当时我已经很习惯EmEditor,并且EmEditor的功能已经很完美,所以我这几年几乎没有用过EditPlus。EmEditor和EditPlus的共同点是,体积都很小,安装目录只有1兆多,启动很快,一瞬间就可以启动了。

UltraEdit

UltraEdit文本工具的功能很多,安装目录有24兆。制作英文网站,并且是PHP程序的时候,必须用到UltraEdit。因为UltraEdit在保存文件的时候,可以直接保存为没有Unicode签名的UTF-8编码格式。EmEditor每次保存的时候,需要另存为才可以保存为没有BOM的UTF-8编码格式,否则EmEditor直接按Ctrl+S,会保存为ANSI格式。因为当UTF-8文件没有BOM的时候,EmEditor或EditPlus会认为是ANSI格式,以ANSI格式打开文件(当文件中有全角字符,EmEditor或EditPlus均没有这个问题)。UltraEdit比较遗憾的是,不能像EmEditor一样打开多个独立的窗口。

这3款软件里,感觉EmEditor已经很顺手了,使用了约7年的时间。制作英文网页的时候,我使用UltraEdit+EmEditor。使用UltraEdit来编辑,使用EmEditor来查找关键词。

写于 2009年02月11日 09:35