如何使用 PHP 将代码附加到 <head> ?

Pet*_*ter 2 html php append head

我有一个小型网络项目,其中所有页面都有一个公共头文件,它们在实际页面内容之前导入。头文件类似于以下内容:

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" type="text/css" href="css/style.css" />
    <script type="text/javascript" src="js/some_script.js"></script>
    <link rel="shortcut icon" href="images/web.ico" />
</head>
Run Code Online (Sandbox Code Playgroud)

然后所有页面都有一个,因此它们在开始时<?php include("header.php"); ?>加载标签。<head>

我现在正在编写一个新页面,其中也包括前一个页面header.php,但它需要第二个 javascript 来加载。<script>我可以使用页面中间的标签毫无问题地加载它,但我想知道是否可以将其直接附加到<head>标签,而不是放在 html 代码中间。

实际的代码看起来像这样:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link rel="stylesheet" type="text/css" href="css/style.css" />
        <script type="text/javascript" src="js/some_script.js"></script>
        <link rel="shortcut icon" href="images/web.ico" />
    </head>
    <body>
        <p>Some text here</p>
        <script type="text/javascript" src="js/another_script.js"></script>
        <p>Some more text</p>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我想知道如何实现以下目标:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link rel="stylesheet" type="text/css" href="css/style.css" />
        <script type="text/javascript" src="js/some_script.js"></script>
        <link rel="shortcut icon" href="images/web.ico" />
        <script type="text/javascript" src="js/another_script.js"></script>
    </head>
    <body>
        <p>Some text here</p>
        <p>Some more text</p>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我知道使用jQuerySimple HTML DOM是可能的,但我想知道是否可以在不使用任何其他外部源的情况下实现这一点。

Vic*_*sky 6

您可以像这样包含header.php :

<?php 

ob_start();
include("header.php"); 
$contents = ob_get_contents();
ob_end_clean();

echo str_replace('</head>', '<script type="text/javascript" src="js/another_script.js"></script></head>', $contents)

?>
Run Code Online (Sandbox Code Playgroud)

代码很简单。您将 header.php 的内容获取到缓冲区,然后在</head>新脚本包含之前添加并将此新内容打印到浏览器。