新手,使用PHP smarty   display后发现 浏览器解释的头信息错位了smarty并未使用assgin   单纯display  模板文件为原布局html 未修改 直接浏览正常。但使用smarty display后不正常<head></head>标签里的东西 神奇的跑到<body>里面去了,并且body里面还出现了几行空白text 导致我的样式错乱浏览器 查看源代码 发现 没有移位, 但是解释却移位了,多浏览器测试均出现上述情况,。纯html浏览该模板文件正常。  请问大侠这是啥原因?

解决方案 »

  1.   


    assgin已被注释,没起作用
      

  2.   

    php文件用header设置下头。 模板用meta指定一下编码。
      

  3.   

    请问下具体该怎么设置呢 PHP文件?模板文件已经设置了 meta等信息
      

  4.   

    header("Content-Type:text/html;charset=utf-8");
      

  5.   


    设置了 还是一样的结果  貌似我只要使用smarty display就会出现  浏览器解释不正常 但是html源代码正常的情况....
      

  6.   


    不可能吧,你把html的代码发一下,我们自己来做个测试
      

  7.   


    有兴趣的话 我架设起来 给你们看http://219.138.190.132/bzoline/
      

  8.   

    查看你的源代码,发现第一行是<!DOCTYPE HTML>
    会不会是这个问题的原因呢?
    换成下面的试试
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      

  9.   

    问题找到了,但是不知道怎么解决, 就是生成的文件里面在php与html之间会自动加上一个卡不见的特殊字符,这个是什么原因?<?php if ($_valid && !is_callable('content_4f30fe240e97c')) {function content_4f30fe240e97c($_smarty_tpl) {?>
    <!DOCTYPE HTML>
    <html>
    <head>
      

  10.   


    改成这个效果是一样的 还是会出错,我修改预处理后的文件 发现确实是那个多余的看不见的字符导致的问题,但是不知道为什么会出现那个多余的字符,原HTML文件并未发现此多余字符
      

  11.   

    如果你的文件是在windows下编辑,然后传到Linux下的,最好执行dos2unixdos2unix yourfile另外你的最后那个大括号看起来比较奇怪
      

  12.   

    感谢大家 问题解决了,是文件编码问题,我使用的是 UTF8编码 都转成了UTF8无BOM模式后正常了!~