Apache和PHP网页的编码问题分析

谈到Apache的编码我们就要涉及到3个东西

http标记语言中的<META http-equiv="content-type" content="text/html; charset=xxx">标签
PHP中的header("content-type:text/html; charset=xxx");函数
Apache配置文件httpd.conf中的AddDefaultCharset

一、<META http-equiv="content-type" content="text/html; charset=xxx">标签
按顺序来,先说这个<META>标签,这个标签有很多功能的,具体请点这里。


我今天想说只是上面提到的那种形式。解释一下<META http-equiv="content-type" content="text/html; charset=utf-8">,意思是对这个网页进行声明,让浏览器对整个页面的内容采用xxx编码,xxx可以为GB2312,GBK,UTF-8(和MySQL不同,MySQL是UTF8)等等。因此,大部分页面可以采用这种方式来告诉浏览器显示这个页面的时候采用什么编码,这样才不会造成编码错误而产生乱码。但是有的时候我们会发现有了这句还是不行,不管xxx是哪一种,浏览器采用的始终都是一种编码,这个情况我后面会谈到。

请注意,<meta>是属于html信息的,仅仅是一个声明,它起作用表明服务器已经把HTML信息传到了浏览器。

二、header("content-type:text/html; charset=xxx");
这个函数header()的作用是把括号里面的信息发到http标头。关于此函数具体用法请点击这里。
如果括号里面的内容为文中所说那样,那作用和<META>标签基本相同,大家对照第一个看发现字符都差不多的。但是不同的是如果有这段函数,浏览器就会永远采用你所要求的xxx编码,绝对不会不听话,因此这个函数是很有用的。为什么会这样呢?那就得说说HTTPS标头和HTML信息的差别了:
引用:
https标头是服务器以HTTP协议传送HTML信息到浏览器前所送出的字串。
因为meta标签是属于html信息的,所以header()发送的内容先到达浏览器,通俗点就是header()的优先级高于meta(不知道可不可以这样讲)。加入一个php页面既有header("content-type:text/html; charset=xxx"),又有<META http-equiv="content-type" content="text/html; charset=xxx">,浏览器就只认前者http标头而不认meta了。当然这个函数只能在php页面内使用。
同样也留有一个问题,为什么前者就绝对起作用,而后者有时候就不行呢?这就是接下来要谈的Apache的原因了。

三、AddDefaultCharset
Apache根目录的conf文件夹里,有整个Apache的配置文档httpd.conf。具体如何配置apache请点击这里([url=thread-2674-1-1.html]windows[/url],[url=thread-1381-1-1.html]linux[/url])。
用文本编辑器打开httpd.conf,第708行(不同版本可能不同)有AddDefaultCharset xxx,xxx为编码名称。这行代码的意思:设置整个服务器内的网页文件https标头里的字符集为你默认的xxx字符集。有这行,就相当于给每个文件都加了一行header("content-type:text/html; charset=xxx")。这下就明白为什么明明meta设置了是utf-8,可浏览器始终采用gb2312的原因。
如果网页里有header("content-type:text/html; charset=xxx"),就把默认的字符集改为你设置的字符集,所以这个函数永远有用。如果把AddDefaultCharset xxx前面加个“#”,注释掉这句,而且页面里不含header("content-type…"),那这个时候就轮到meta标签起作用了。

总结:
来个排序

header("content-type:text/html; charset=xxx")
AddDefaultCharset xxx
<META http-equiv="content-type" content="text/html; charset=xxx">
如果你是web程序员,给你的每个页面都加个header("content-type:text/html; charset=xxx"),保证它在任何服务器都能正确显示,可移植性强。

至于那句AddDefaultCharset xxx,要不要注释就仁者见仁了。反正我是注释掉了,不过我写页子也要写header(),便于放到不同的服务器上能正常显示。

虚拟机下Debian VMWare TOOLS的安装

今天在虚拟机上安装了Debian,但是在装VMWare tools的时候出错了,提示大概就是需要安装gcc、linux headers,这几个在安装时不是默认安装的~所以就......
折腾了半天,总结一下Debian 下安装VMware Tools的步骤:
1、安装GCC/Make:
VMware Tools 安装需要编译和make,因此GCC,Make是必须事先安装的:“apt-get install gcc make;”,或者直接安装build-essential把所有相关的包都装上;
2、安装内核头文件:
VMware Tools 安装依赖于内核头文件。否则的话安装过程中会报找不到“version.h”文件。先要用 uname -a 命令查看自己Debian的版本(我的是2.6.18-8-686),安装VMware Tools的时候必须重新安装新内核的头文件:“apt-get install linux-headers-2.6.18-8-686”;
3、安装VMware Tools:
前面的准备都完成之后,真正安装VMware Tools就简单了,在VMware的VM菜单里面选择Install VMware Tools…,然后系统会自动挂装VMware Tools包到光驱,将其中的压缩包解开, 运行vmware-tools-distrib下的vmware-install.pl,一路next;
安装完成之后重启系统,ok了。

Debian Linux deb包的安装方法

deb 是debian linus 的安装格式,跟red hat 的rpm相似

安装: dpkg -i file_ver.deb

 

Debian Linux下查看版本的命令

cat /etc/issue

结果示例:

licess@debian:~$ cat /etc/issue
Debian GNU/Linux 4.0 n l
 

网页加速系列(三)、 网页加速之网页减肥篇

为完成页面减肥就要先说说HTML语言了,它是一种解释性的脚本语言,更多请参见(http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/dhtml.asp,英文),那怎样可以“减肥”呢,因为在HTML语言里本来是不用换行,不用大量的空格的,但各种用编辑器写出来的HTML为了便于作者查看程序所以都用上了很多的空格和和换行,好像FP2000这个软件会产生相当多的空格使你网页的内空变得很大。还有一些可以减去的内容就是人为的了,比如你把多个HTML的属性用到一个对像上,而这些属性里有重复的,也会使你的页面变肥了。而一些可以产生同要效果的不同定义也会产生了大量的无用代码。下面看一下具体的减肥方法:

1、软件压缩法

  最容易的方法就是软件压缩法,用一些专门对HTML减肥的软件来对HTML页面减肥,这个方法很容易且很有效,但对于比如人为造成的冗余HTML代码就不能减了,只能减掉多余的空格和tab。

2、设计减肥法
  这个方法也很容易的,在这里只讲一部分,更多的要自己积累,方法就是在设计网页时,特别是用一个软件来设计网页时你要用一种良好的操作习惯和正确的方法使你编写出来的页面量优化。例如当你有文字或图片在表格里时需要居中,那么使用单元格居中就会比使用文字居中产生的代码少;例如页面里所有的文字都是小字的时候用CSS的方法来定义文字会比一部份一部份的去写义文字少产生很多的代码;再例如要
给一个表格里的一行定义相同的色彩,那么使用行定义(TR)就会比使用单元格定义色彩产生的代码少;又例如如果你页面里大多数的链接都是要新开一个窗口,那么你把该页面的默认(base)设为开新窗口,这样又会减少很多的开新窗口的定义。类似的代码也是如此。

3、程序减肥法
  这就是页面减肥的较高的境界了,大家看能看到,页面里有很多的代码是想同的,这些样同的东西如果可以减下来可
就不得了了,怎样做到呢?用程序了,因为现在的网页都可以使用一种程序语言JAVASCRIPT这种程序是插入HTML里面完成
一些动态的东西,那么我们的减肥就用它了,比如做链接的HTML如下:
<TD ALIGN=MIDDLE WIDTH=110><A HREF="HTTP://www.qianxun.com">千寻</A></TD>
<TD ALIGN=MIDDLE WIDTH=110><A HREF="HTTP://HDQS.126.COM">红豆情思</A></TD>
<TD ALIGN=MIDDLE WIDTH=110><A HREF="HTTP://STONETIME.126.COM">STONE时间</A></TD>
<TD ALIGN=MIDDLE WIDTH=110><A HREF="HTTP://XIAOKUEN.ON.NET.CN">恋爱花园</A></TD>
<TD ALIGN=MIDDLE WIDTH=110><A HREF="HTTP://LILICAI.YEAH.NET">味道</A></TD>
<TD ALIGN=MIDDLE WIDTH=110><A HREF="HTTP://BROY.126.COM">风花</A></TD>
内容不少了,但有不少的东西是一样的,那么我们就用程序来动态的生成这些东西程序如下:
<SCRIPT>
FUNCTION LK(URL,TXT){
DOCUMENT.WRITE("<TD ALIGN=MIDDLE WIDTH=110><A HREF="+URL+">"+TXT+"</A></TD>")
}
LK("RONGWW.YEAH.NET","<FONT COLOR=RED>榕儿的家")
LK("HDQS.126.COM","红豆情思")
LK("STONETIME.126.COM","STONE时间")
LK("XIAOKUEN.ON.NET.CN","恋爱花园")
LK("LILICAI.YEAH.NET","味道")
LK("BROY.126.COM","风花")
</SCRIPT>
这样以来,内容就会减少一些,但如果好像上面的链接有很多很多,这段代码就可以大量的为你减肥了,而且增加了页面的可维护性,这个程序只是一个例子,也许它不合你所需,但这就是我告诉你的方法,你可以自已设计所需的程序,使页面更快更好(比如我的页面上的年月日下拉框就是dw("<option value="+i+">"+i+"</option>"),大大减少了页面网络流量)。另一种用程序减肥的方法就是合里的使用.JS程序,.JS的使用不当会使页面速度下降,但如果合理的使用,自己本地的.JS就另有工效了。通过它可以把不同网页里相同的代码用一个.JS文件保存,使
页面的容量减少,同时还便于以后的页面修改。

10个保持注意力的技巧 [转]

也许养成给日程计划列清单排表格的习惯能使你的工作更有条理,然而同样是为了提高效率,我相信能 掌握一些保持专注的技巧也很重要。如果你有定力能够安静地坐在台前全神贯注投入工作长达几个小时,我敢保证,在这样的状态下,即使是半个小时的工作,也一 定比不断分心常遭干扰的一天的工作能取得更多的成果。

一、杜绝干扰

很明显,周遭的干扰足以让你在工作中心神不宁,那么你排除了这些干扰吗?不得不承认,运行自动收 信软件(译者注:如Gmail Notifier、MSN Messenger,一般电子邮件客户端也具有此项功能,如:Mozilla Thunderbird、Microsoft Outlook、Foxmail等)能保证你在第一时间阅读来信,开着即时通讯软件(译者注:IM即Instant Messenger,如ICQ、MSN Messenger、Gtalk等)有一句没一句地回复网友们的招呼能消减工作时的寂寞,但是它们都是随时能打断工作的干扰源,你需要杜绝它们。

一般进入专注状态需要15分钟时间,如果每5分钟就要被打断一次,你又如何能够聚精会神?所以,请特别安排划分一段时间以供查收和处理邮件,请尽量避免在电话及来访繁忙的时段安排工作,并告诉相关的人不要在你工作时打扰你。

二、安排合适的工作场合 [separator]

工作环境对你能否专注工作有很大的影响。请把自己的座位安排在能方便够及干扰源的地方,比如正对门窗,比如让电话顺手可及,如此一来,简单无意的一瞥即可排除门窗产生的杂音,顺手一拿即可接听电话,这样才能使你的分心降低到最小程度。

三、明确目标

请在工作开始前就明确自己的目标。如果你对自己需要完成什么工作都不知道,这种困扰会严重影响专注程度。在作文之前,我会先想明白文章的主题并在脑里陈列提纲打个粗稿。少了“明确目标”这一步往往会导致部分工作的返工。

四、理出头绪

脑里七七八八的一大摞任务很难让你全神贯注。在工作开始前,除了要明确目标以外,你还应该花上几分钟时间为大堆的零碎任务理出头绪分清秩序,否则你就得在工作中浪费几个小时来处理任务间的混乱和冲突了。

五、弄清任务要求

请在处理任务之前弄清它的指标和要求,比如:任务的质量要求;任务的标准要求;以及任务进行过 程中会受到怎样的限制。如果你是个程序员,你需要搞清所写代码的注释语句密度标准(译者注:注释语句,是为了增加代码可读性的解释性语句,不会被编译器翻 译成可执行的机器代码。),需要调用哪些函数(译者注:函数,是程序的基本单元,是被封装起来能完成特定功能的代码段。对于C或者Fortran之类的非 高级编程语言,明确了需要调用的函数,你就可以在程序开始处将相关的函数文件包含进来,以提高编程效率。),程序的灵活性要求如何等等。如果你在作文,在 这之前就需首先为自己指定好行文风格并做出文书长度的规定。如果在任务开始之初没有弄清任务要求,就会引起无规则行事的混乱局面,那时你将在过程中不断考 虑和转变这些要求而不停返工,不但工作流程无法顺畅执行,这些停断也会使你无法专注。

六、指定时限

为自己强行指定时限完成任务对于工作专注度的影响有好也有坏。一个存在于意识中的时限能够使你忘记琐碎的小事并提升你的工作速度。如果你规定自己一小时之内必须完成一个徽标的设计,就能避免自己使用花里胡哨的废装赘饰,从而使徽标保持简洁清爽的面目并提高设计效率。

时限也会令你陷入无法按时完成工作的焦虑而难以专心于手头实际的工作,所以我建议只在这些情况下为自己设定时限:

任务时间有限。如果你需要在一天内完成一个可能花费几周时间的工作,就该为任务划分成块,分别设定时限,如此才能保证在短时间内完成任务的重要部分。
当你遇上那些非常容易扩展伸延的任务。如果你的任务很容易延伸扩展出其他的要求并不断产生子任务,时限可以使你更好地控制进度而不至于东奔西走陷入混乱。
避免拖延和耽搁。当你担心自己的困怠是否会耽误任务进度时,设定一个时限就是为自己安排了一个监工。
七、清除障碍

工作中遇到棘手的问题时难免就会碰上障碍,当你思路受阻时必定心烦意乱难以专注。这时你需要纸笔进行头脑风暴,即便在遇到障碍时灰心丧气,写下思路却能使你依然保持精神的集中而不至于心猿意马。

八、隔离自己

除非需要团队合作,否则请你在工作中做个隐士,在闹哄哄的工作环境中隔离自己,构筑一个私人空间,必要时给门贴上“工作中,拒绝打扰”的标识,拔掉电话线,直到工作完成再去与人闲聊攀谈。构建这样的工作环境才能使你更好地专注于工作。

九、健康能够驱动头脑飞转

身体状况决定了专注程度。没人会指望一个醉醺醺的家伙能百分百地投入工作。长期睡眠不足;过度 使用兴奋药物(比如咖啡因);酽饮浓食;摄入过多能量,这些都会影响你集中注意的能力。请戒绝其中某个不良的生活习惯,保持一个月,看看你的体质是否得到 改善,我的个人经验是,只需要改变一丁点儿生活行为,就可以大幅提高专心能力。

十、保持耐心

在把手指放上键盘开始作文之前,我通常会在座位上安坐15~20分钟以使自己心定气闲,在这期间我总有一股站起身来离开的冲动,但我会说服自己:只有保持耐心才能专心致志地卯定文题,思流顺畅,文路扩扬。

如果需要保持集中的心思专注,我建议你把工作以90~120分钟为界分割成段。这个分段的长短因人而异,需要根据自身特点进行设计,时间短了则会使你浪费过多时间来调节自己进入工作状态,反之则会因为工作时间太长而降低效率并分散注意力。

转自:http://www.chinado.net/blog/2007/09/16/p1299