【问题标题】:PHP: including pages - html tags or not?PHP:包括页面 - html标签与否?
【发布时间】:2011-09-23 07:52:30
【问题描述】:

我正在为网页设计一个模板,并在不同页面中构建模板的单独部分,这些部分都将包含在一个页面中(即,leftdiv.php、maindiv.php、header.php、footer。 php等)。该网站将包含希腊字符,我使用的是 utf-8 编码。

现在我有 leftdiv.php ,其中包含希腊字符,但我遗漏了定义页面编码的 html 和元标记,因此,我在以正确的编码显示页面时遇到问题,可能是因为当index.php 需要 leftdiv.php,没有用于正确编码的元标记。 我是否应该在每个包含的文件上保留元标记?我还有哪些其他选择?

【问题讨论】:

  • 顺便说一句,问题标题令人困惑。你到底是什么标签

标签: php meta-tags


【解决方案1】:

元标签无关紧要。

您必须在 真实 HTTP 标头中设置编码,而不是在元替换中。
因此,通过

在 PHP 代码中设置您的编码
header('Content-type: text/html; charset=utf-8');

并保留元标记。

我也想知道为什么你使用这么多模板文件(leftdiv.php、header.php、footer.php 等)而不是将它们全部放在一个主模板中。

【讨论】:

  • 谢谢你,就像一个魅力。虽然我已经用过很多次了,但我完全忘记了它。
  • 使用不同的模板部分是一种正常且理想的代码设计......即。如果您的 leftdiv 始终相同(例如,您的新闻标题)。没有错!
  • @giorgio 请仔细阅读我的回答。你没明白重点。
  • 不好意思,只关注区分部分,回复有点太快了。过失;)。但你是对的,更好的做法是创建一个主模板(布局)并包含其中的任何部分,其中 leftdiv 可能是 news_headlines.php 或 your_latests_posts.php 取决于登录状态(例如)。
【解决方案2】:

我的猜测是上传文件时出错了。尝试二进制模式 (ftp),因为某些字符可能不是 ascii 字符。

进一步;不用担心模板部分中的元标记等;当输出到浏览器时,所有部分都由php连接起来并作为一个html页面发送。浏览器对你的不同部分一无所知,只看到整个画面。因此,请检查浏览器中的 html 源代码。如果源被正确标记,并且正确的元标记位于 中,那么一切都应该没问题。要测试它,只需上传一个简单的 html 文件。如果可行,则将其扩展到不同的部分。

【讨论】:

    【解决方案3】:

    您必须将文件以 UTF-8 编码存储在您的光盘上。然后元标记就可以了,不用发送额外的标头。

    <meta charset="UTF-8" />
    

    【讨论】:

      【解决方案4】:

      元标记应该只在页面的头部。我所说的页面是指您的网络浏览器显示的文档,而不是它背后的 PHP 脚本。所以不要把元标记放在footer.php中。

      【讨论】:

        【解决方案5】:

        浏览器对你的不同部分一无所知,只看到整个画面。因此,请检查浏览器中的 html 源代码。

        【讨论】:

          【解决方案6】:

          如果您将header('Content-type: text/html; charset=utf-8'); 设置为使用 UTF-8 编码保存的页面,一切都会好起来的。

          【讨论】:

            猜你喜欢
            • 2011-10-07
            • 2023-04-08
            • 2013-01-06
            • 2014-11-12
            • 1970-01-01
            • 1970-01-01
            • 2012-07-21
            • 2014-12-27
            • 1970-01-01
            相关资源
            最近更新 更多