PHP包括页眉和页脚,在某些页面上有不同的插件

时间:2017-11-07 12:05:27

标签: php header include footer

我正在使用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>

3 个答案:

答案 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 
}