我正在使用php构建一个网站,它有20页。在主页上 我想有一个滑块和一些其他插件,我包括它们 在头上。在页脚中我还链接了一些JS文件。 当我们使用php时,我们有header.php和footer.php 某些页面上不需要某些插件,而是header.php 和footer.php包含在这些页面上。有没有办法删除 那些特定页面上的那些插件?或者我必须包括一切 即使他们不需要?另外我想添加一些其他插件 在主页中不需要的某些页面中。我应该创建多个header.php和footer.php并在必要时包含它们吗? 这个问题的解决方案是什么?
感谢。
Example:
Home Page those are needed:
Header.php
<link rel="stylesheet" href="plugin01.css">
<link rel="stylesheet" href="plugin02.css">
<link rel="stylesheet" href="plugin03.css">
<link rel="stylesheet" href="plugin04.css">
Footer.php
<script src="plugin01.js"></script>
<script src="plugin02.js"></script>
<script src="plugin03.js"></script>
<script src="plugin04.js"></script>
Random Page:
I need only
header.php
<link rel="stylesheet" href="plugin01.css">
<link rel="stylesheet" href="plugin02.css">
footer.php
<script src="plugin01.js"></script>
<script src="plugin02.js"></script>
答案 0 :(得分:2)
你可以做的是创建一个辅助函数来帮助加载所需的资源,然后像这样有一个共同的header.php / footer.php:
<强> helpers.php 强>
<?php
function loadStyles($assets = array()) {
foreach ($assets as $asset) {
echo '<link rel="stylesheet" href="'. $asset .'.css">'."\r\n";
}
}
function loadScripts($assets = array()) {
foreach ($assets as $asset) {
echo '<script src="'. $asset .'.js"></script>'."\r\n";
}
}
?>
然后,像这样更新你的header.php
:
<?php
// Load required stylehseets for this page
if (isset($styleAssets)) {
loadStyles($styleAssets);
}
// Rest of your common header stuff here
?>
然后像footer.php
那样做类似的事情:
<?php
// Load required scripts for this page
if (isset($scriptAssets)) {
loadScripts($scriptAssets);
}
// Rest of your common footer stuff here
?>
然后你就像这样把它们放在一起。例如,这是你的&#34; home.php&#34;页:
<?php
// Load helpers
require 'helpers.php'
// Define required styles for this page
$styleAssets = array(
'plugin01',
'plugin02',
'plugin03',
'plugin04'
);
// Load header
require 'header.php'
// Rest of the "home" page code goes here
// Define required scripts for this page
$scriptAssets = array(
'plugin01',
'plugin02',
'plugin03',
'plugin04'
);
// Load footer
require 'footer.php'
?>
现在,对于另一个random.php
页面,您只需重复使用这样的脚本:
<?php
// Load helpers
require 'helpers.php'
// Define required styles for this page
$styleAssets = array(
'plugin01',
'plugin02'
);
// Load header
require 'header.php'
// Rest of the "random" page code goes here
// Define required scripts for this page
$scriptAssets = array(
'plugin01',
'plugin02'
);
// Load footer
require 'footer.php'
?>
答案 1 :(得分:1)
您必须为每个页面定义所需的插件(资源)。 在页眉和页脚文件中,只需循环遍历该数组并调用资源。
它的工作量更多,但它是一种更有条理的方法,如果您将来有一个带有其他插件的新页面,而不是编写补丁,您很容易使用此机制更新它。
<强> PageX.php 强>
//$this_page = 'pageX';
$plugins = array(
'css' => array(
'pluginName1' => 'plugin-name-1.css',
'pluginName2' => 'plugin-name-2.css',
),
'js' => array(
'pluginName1' => 'plugin-name-1.js'
)
);
require_once 'header.php;
//....
//...
require_once 'footer.php';
<强>的header.php 强>
foreach($plugins['css'] as $name => $resource_url){
echo '<script src="'.$resource_url.'"></script>';
}
<强> Footer.php 强>
foreach($plugins['js'] as $name => $resource_url){
echo '<link rel="stylesheet" href="'.$resource_url.'">';
}
答案 2 :(得分:1)
在 Header.php 中,您可以查看当前页面。
if( basename($_SERVER['PHP_SELF']) == 'homepage.php')
{ ?>
<link rel="stylesheet" href="plugin01.css">
<link rel="stylesheet" href="plugin02.css">
<link rel="stylesheet" href="plugin03.css">
<link rel="stylesheet" href="plugin04.css">
<?php
}