我不明白的基本内容:
我的网站有导航栏header.php
。在其中,有一个<head>...</head>
部分。
现在,在我网站的每个其他页面中,我正在使用require_once 'header.php'
,以便每个页面都会显示导航栏。 但是,我还需要特定的<head>...</head>
部分到不同的页面。
例如,在页面customers.php
中,我使用<script>...</script>
来包含jQuery库。我不需要将其包含在其他页面中。
现在,在网上搜索我发现多个头标记是错误的语法。
那么,任何人都可以:
答案 0 :(得分:1)
您必须更改页面结构并使用模板 而不是在代码的顶部加载标题,你必须在底部执行! 并且页面代码不应输出单词,而是收集变量中的所有数据。 只有在输出后才能通过调用模板启动。
示例布局将如下所示:
首先。页面本身。
它输出无,但只收集所需数据并调用模板:
<?
//include our settings, connect to database etc.
include dirname($_SERVER['DOCUMENT_ROOT']).'/cfg/settings.php';
//getting required data
$DATA=dbgetarr("SELECT * FROM links");
$pagetitle = "Links to friend sites";
//etc
//and then call a template:
$tpl = "links.php";
include "template.php";
?>
接下来,template.php
是您的主要网站模板,由您的页眉和页脚组成:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My site. <?=$pagetitle?></title>
</head>
<body>
<div id="page">
<? include $tpl ?>
</div>
</body>
</html>
最后,links.php
是实际的页面模板:
<h2><?=$pagetitle?></h2>
<ul>
<? foreach($DATA as $row): ?>
<li><a href="<?=$row['link']?>" target="_blank"><?=$row['name']?></a></li>
<? endforeach ?>
<ul>
简单,清洁和可维护。
这种方法有很多优点:
答案 1 :(得分:0)
以下是一些您可以看到的简单方法。
您可以在页面上使用jQuery 那不需要它;一旦它 下载它将被缓存,所以它 仍然不会使用更多的带宽。
您可以移出结束</head>
从header.php标记并关闭
页面中的<head>
标记包含在内
的header.php。
您可以在任何地方添加javascript 在页面上,不仅在标题中。
您也可以这样做。
在执行require_once 'header.php';
之前,您需要输入名为$jquery = true;
在header.php文件中,检查$jquery
是否设置为true,如果是,则包含jQuery。
答案 2 :(得分:0)
你可以这样输入
<head>
<?php echo $script; ?>
</head>
然后在您的customers.php中 你可以先分配变量
$script = '<script>...</script>'
然后
require_once 'header.php'
答案 3 :(得分:0)
一种可能的解决方案。
header.php
。header.php
。如果是,则打印脚本或其他内容。像这样:
<!-- Fragment of header.php -->
<?php if ($i_want_jquery): ?>
<script ...>
...
</script>
<?php endif; ?>
另一方面,模板可能是更好的解决方案。