php require_once或包含在HTML头标记内部不会将代码置于头部但在体内

时间:2011-12-17 13:03:24

标签: php

我想在几个页面中共享HTML head 标记的内容,但是当我在HTML head 标记内使用require_once时,我遇到了一个奇怪的错误。让我解释一下。

如果我有下一个代码:

<!DOCTYPE html>
<html>
<head>
    <title>Datos Soluciones Informáticas</title>        
        <meta charset="UTF-8">
        <link rel="stylesheet" href="/css/main.css">
</head>

我检查代码,看起来像预期的那样。

enter image description here

但是,如果我将head标签的内容移动到外部文件/snippets/head.php

<meta charset="UTF-8">
<link rel="stylesheet" href="/css/main.css">

然后在我的index.php文件中写下一个代码:

<!DOCTYPE html>
<html>
<head>
    <title>Datos Soluciones Informáticas</title>        
    <?php require_once('/snippets/head.php'); ?>    
</head>

检查显示代码未插入适当的位置:

enter image description here

这不仅仅是检查不起作用的问题,而且页面的行为不符合预期。 include代替require_once

,我遇到同样的问题

在chrome中使用view-source:localhost获得的原始输出看起来不错但页面渲染效果不佳

<!DOCTYPE html>
<html>
<head>
    <title>Datos Soluciones Informáticas</title>        
    <meta charset="UTF-8">
<link rel="stylesheet" href="/css/main.css">
</head>
<body>

我在Windows 7计算机上使用Xampp 6.1 Build 7601作为我的本地环境。

有谁知道我错过了什么?

2 个答案:

答案 0 :(得分:10)

另一个镜头:

您所包含的文件是否以不可见的字节顺序标记(BOM)开头?然后通过设置正确的字符编码将其删除。

请参阅包含此评论的http://php.net/manual/en/function.include.php

  

避免ZERO BYTE ORDER MARK!

     

我遇到了include / require(曾经或不是)的问题。我创建了一个include-opening.php,它具有页面的初始结构,然后将该页面包含在所有其他页面中。结果看起来“崩溃”,所以我确实比较了包含或只是将html代码粘贴到页面中。硬编码版本显示正常,即使源代码完全相同。

     

所以我用notepad ++打开了包含文件并将编码设置为UTF-8(没有BOM),瞧,现在一切都很好。

答案 1 :(得分:0)

尝试在没有第一个斜杠的情况下包含文件,如下所示:

<?php require_once('snippets/head.php'); ?>