在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前几天想组织网站使用模版系统以便整体规划页面,使页面和php代码相分离。于是模版选了以前看o-blog时候shirui使用的smarttemplete(现在版本为QuickSkin V5.0),当页面组织过后,凡是使用过QuickSkin的模版页面,顶部都出现了一个空行,在chrome浏览器下为一个标记点号。 我想当然的就以为是模版的bug,于是更换大型模版,使用smarty,结果smarty也是出现了相同的问题,今天用‘php smarty 空行’作为关键字搜索,看到一个相关的文章PHP Smarty 输出空行。他问题解决了,找到的问题的解决办法“utf的bom头签名”。 现将文件部分内容摘抄至此: BOM信息是文件开头的一串隐藏的字符,用于让某些编辑器识别这是个UTF-8编码的文件。 文件以UTF-8编码保存时,有两种情情况:带Unicode签名(BOM)和不带Unicode签名。 对于一般的文件,这样并不会产生什么麻烦。但对于 PHP来说,PHP在设计时就没有考虑BOM的问题,不会忽略UTF-8编码的文件开头BOM的那三个字符,会把BOM作为该文件开头正文的一部分。 由于必须在<?或者<?php后面的代码才会作为PHP代码执行,所以将会造成在页面上输出这三个字符,显示效果就要看浏览器了,一般是一个 空行或是一个乱码。由于在html一开头有这3个字符的存在,即使页面的 top padding 设置为0,也无法让整个网页紧贴浏览器顶部。由于受COOKIE送出机制的限制,在这些文件开头已经有BOM的文件中,COOKIE无法送出(因为在 COOKIE送出前PHP已经送出了文件头),所以登入和登出功能失效。一切依赖COOKIE、SESSION实现的功能全部无效。 |
2022-08-30
2022-08-17
2022-11-06
2022-08-17
2022-08-15
请发表评论