在php编程中,用include来实现模板化是很平常的事,而今天在这样做的时候发生了一件怪事,就是网页结构通过蜘蛛软件和firebug来看时,head里的元素居然是在body中,打开网页源码一看,是在head中啊,怎么显示出来的却是在body中呢,但是不大可能两个软件同时出问题,特别是蜘蛛,就算蜘蛛错了,那我们也要跟着它的标准来,所以不能只看源码对不对了,肯定是有深层的问题。 head鍏冪礌鍦╞ody涓
于是重新用firebug打开看了一下源码,发现顶部多了一小段空白,于是我把它保存成xml文档,打开来时报错,这样答案就明了了:头部有不可见的非法字符,而这一般有经验的人都能想到就是bom! 只是没想到bom造成的现象会是在firebug和一些浏览器工具中显示出的头元素错位到body中去! 为这些浏览器的容错能力感到:惊奇啊!!
   接下来,问题就好解决了。打开被被include的模板文件,将其另外为utf-8无bom版(可利用visual studio保存成utf-8 without signature或用editplus工具保存成utf-8)。问题解决!