我的菜单系统都来自索引文件。一个简化的例子:
#index.php
...
<div id="container">
include($inc_file) //index.php?site=news will show news.php
</div>
...
我的问题是:如何在需要时只包含一些js文件和css文件。例如,我有一个带滑块的文件。我想在访问该页面时只包含与滑块相关的js / css文件。
我知道我可以制作if / else子句,但我发现它有点无效。是否可以放置一个包含数组的会话,其中包含应该包含在首页的所有文件?
答案 0 :(得分:0)
以下是我要使用的内容:
<?php
$path_parts = pathinfo(__FILE__);
$filename = $path_parts['filename'];
if ($filename === "somepage") {
?>
<script src=""></script>
<link ...>
<?php } ?>
答案 1 :(得分:-1)
我只想为每个页面预设一个数组,其中包含需要包含的css / js文件数组。
例如,
的的settings.php 强>
<?php
$pages = array();
$pages['index'] = array(
"css" => array("main.css","index.css"),
"js" => array("jquery.min.js","someotherjs.js")
);
$pages["about"] = array(
...
);
<强>的index.php 强>
<?php
include('settings.php');
?>
...
<head>
<?php
foreach($pages['index']['css'] as $css)
echo "<link rel='stylesheet' type='text/css' href='$css'>";
?>
...
<?php
foreach($pages['index']['js'] as $js)
echo "<script src='$js'></script>";
</body>
</head>
答案 2 :(得分:-2)
这可能不是您期望的答案,但您知道浏览器不会下载自上次下载以来未发生更改的css
或js
个文件。它们缓存在客户端PC上,只有在服务器上的副本发生更改时才会刷新。
因此,您可能不需要对每个页面加载的内容如此具有选择性,因为它可能不会导致重新下载css或js文件。
答案 3 :(得分:-2)
准备一个对象,您可以根据需要添加样式或js文件
class head {
private css = array();
public function head(){}
public function add_css(file){
$this->css[] = file;
}
public function get_css(){
$html = '';
if(count($this->css)>0){
for($i=0;$i<count($this->css);$i++){
$html .='<link rel="stylesheet" type="text/css" href="/css/'.$this->css[$i].'">';
}
}
if(!empty($html)) return $html;
}
}
// destruct ...
在您的控制器中:
require('/class/head.php');
$head = new head();
$head->add_css('myStyle.css');
头部
<?php echo $head->get_css(); ?>