如何在另一个php文件(例如"links.php")的索引php中包含带有JS和CSS链接的头部分?
实际上很容易
index.php
<!DOCTYPE html>
<html lang="">
<head>
<?php require_once('header.php'); ?>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
header.php
echo "<link href='"style.css'" rel='"stylesheet'">";
echo "<script type='"text/javascript'" src='"js.js'"></script>";
echo "<link href='"style2.css'" rel='"stylesheet'">";
试试这个:
Index.php
<html>
<?php include_once('links.php'); ?>
<body>
<!--Your following Code-->
</body>
</html>
Links.php
<head>
<link rel="stylesheet" type="text/css" href="styles.css">
<script type="text/javascript" href="script.js"></script>
</head>
另一个.php
<link rel="stylesheet" type="text/css" href="/css/style.css"/>
<script type="text/javascript" src="/js/jquery.js"></script>
index.php
<html>
<head>
<?php include 'another.php'; ?>
</head>
<body>
// Content goes here
</body>
</html>
一个简单的解决方案是在顶部包含所有文件,并将它们的css文件和脚本文件存储在一个数组中。所以它可能看起来像这样:
links.hp:
return [
'css' => ['assets/links.css', 'assets/global.css'],
'js' => ['assets/links.js', 'assets/global.js'],
'content' => ...
];
index.php:
// this one requires all.css and all.js
$allCss = ['assets/all.css'];
$allJs = ['assets/all.js'];
$links = include('links.php');
$allCss = array_unique(array_merge($allCss, $links['css']));
$allJs = array_unique(array_merge($allJs, $links['js']));
// Do all rendering below this
// render head something like this
foreach ($allCss as $css) { echo "<link rel=... src=$css />" }
// same for js
// render links: e.g. echo $links['content'];
通过这种方式,您可以让每个组件指定它需要的文件,如果两个文件需要相同的css或js文件,则不会两次放入链接标记。
这将要求您拥有某种可以支持此功能的文件结构。我的例子可能不是最好的。
试试这个代码,这是一个简单的演示,适用于您的问题,实现可能会根据需求而有所不同
index.php
<html>
<head>
<?php include('path/to/assets.php') ?>
<link href="path/to/this/page/levelcss.css" rel="stylesheet"/>
<script src="path/to/this/page/levelscript.js" type="text/javascript"></script>
</head>
<body>
<!--HTML Body goes here -->
</body>
</html>
assets.php
<?php
echo '<link href="path/to/project/levelscript.js" rel="stylesheet">';
echo '<script src="path/to/project/levelscript.js" type="text/javascript"></script>';
?>