php include 语句包含文件时,浏览器多出换行
admin
2023-06-14 10:42:21
0

今天在做一个项目时候,用include语句包含文件。在云服务器上测试正常,在虚拟主机上总是多了莫名奇妙的换行符或者空格符。问题如下:php include 语句包含文件时,浏览器多出换行
经过排查发现问题出现在包含文件的页面编码上:被包含文件的编码是 utf-8+bom编码方式存储。将文件转化成utf-8无bom的编码格式就好;
下面此次问题排查中学习到的东西,总结如下:

1.什么是BOM?

BOM是用来判断文本文件是哪一种Unicode编码的标记,其本身是一个Unicode字符("\uFEFF"),位于文本文件头部。UTF-8实际上包含两种格式:UTF-8 无BOM 类型 与 UTF-8 有BOM 类型。题主刚好使用的是有bom的的类型。事实上在UTF-16 UTF-32中同样分带有BOM及无BOM两种.

2.存在的问题?

BOM实际上是非常有用的前缀。但是在服务器点对点沟通解析或者网页展示中某些情况下却是多余或者说是会带来“麻烦”的。例如会在页头增加如下所示的乱码字符:”“锘?”

1.例如我们把几个JS文件合并成一个文件后,如果文件中间含有BOM字符,就会导致浏览器JS语法错误。

2.PHP就不能识别bom头,PHP并不会忽略BOM,所以在读取、包含或者引用这些文件时,会把BOM作为该文件开头正文的一部分。根据嵌入式语言的特点,这串字符将被直接执行(显示)出来。由此造成即使页面的 top padding 设置为0,也无法让整个网页紧贴浏览器顶部,因为在html一开头有这3个字符呢!

3文件编码转化方法

我使用editplus编辑器进行转化,具体如下,选文档(Document)菜单——文件编码(File encoding)——批量转换编码(File encoding multiple),选中全部文件后转码,然后再全部保存。

扩充-解决php输出时出现多余的空格或者换行

1.要查清自己本身有没有echo 或者exit空格或者换行,
2.一定要保证php文件里标签外没有多余的回车,换行。如果是纯粹的php脚本文件,请删除脚本后面结束标记
3.这些都排查了之后,如果是utf8编码的文件,还会输出一个多余的空格回车。做xml传输时经常死在这多余的空白上面。这是由于BOM文件头造成的。另存为无BOM的文件即可。

相关内容

热门资讯

王鹤棣客栈风波发酵,实探“棣爸... 近日,综艺《亲爱的客栈2026》收官颁奖环节引发舆论风波,演员王鹤棣公开表示感到“不舒服”,沈月发长...
俄罗斯举行大规模核演习,向欧洲... 澎湃新闻特约撰稿 林森俄罗斯举行大规模核演习,将核武器使用部队提升至最高战备状态据参考消息网21日报...
空调一开机就跳闸故障怎么解决 空调一开机就跳闸故障通常是由电路短路、电路过载、电容器失效等问题导致。如果发现空调一开机就跳闸故障,...
海尔空调26-1故障 表示的是通讯故障,一般是空调的室内机与室外机连接线出现了故障,空调就会出现故障报警。首先检查室内机的...
房间空调开不开,一开就跳闸,只... 电压不是很稳定,线路出现了短路,会让空调压缩机没有办法正常启动;家中漏电保护器出现了异常,空调时也容...
海信空调遥控器解锁 打开海信空调遥控器的电池盖,找到一个上面写着开锁/关锁的小孔,用很细的工具按下去即可解锁,每次按这个...
美的空调出现e6是什么情况 这是因为空调的外挂机出现高压压力而开启的自我保护功能,如果遇到这种情况的话,首先需要检查一下空调的过...
官方通报“泰山石违规开采、囤积... 5月26日,泰安市联合调查组发布情况通报,针对媒体报道的泰山石违规开采、囤积售卖等问题,泰安市委、市...
“暗面”之殇:留神峪煤矿事故调... 5月23日,山西省长治市沁源县应急管理局通报称,5月22日19时29分,沁源县通洲集团留神峪煤矿发生...
“B类留神峪”矿工们的逃生与等... 晚上约七点半,1号井的黄忠兵突然听到“轰”的一声闷响,来不及反应,他整个人被一阵冲击波吹倒,“大概被...