在PHP中包含标题时,如何添加内容?

Dav*_*vid 4 javascript php

我正在构建我的第一个PHP网站,并且只是玩它.我将使用PHP包含,所以我只需要改变我的元素一次.目前,我拥有从doctype到结尾的所有内容</head>.

一位朋友说我不应该</head>在header.php中包含它,而是将它包含在每个页面上,这样我就可以添加页面特定的东西.这是一个很好的方法吗?

目前,对于像标题这样的东西,我在做

<title><?php echo $page_title; ?>
Run Code Online (Sandbox Code Playgroud)

然后在每页的顶部,我正在做

<?php $page_title = 'Blah'; ?> 
Run Code Online (Sandbox Code Playgroud)

如果这是我正在这样做的方式,我将如何添加页面特定的Javascript文件?

Jim*_*zuk 6

这里发生的是你试图在你的模板中注入逻辑,这不一定是错的,但它会产生更多令人困惑和难以维护的代码.此问题不仅适用于您的<title>代码,还会随着您的网页变得越来越动态和复杂(动态导航,特定于页面的布局等)而不断出现.

MVC方法完美地解决了这个问题.MVC由模型组成,它们与您的数据源(MySQL,Redis,无论如何)交谈并处理您的逻辑; 视图,呈现HTML; 和控制器,它们是模型和视图之间的粘合剂.用户做出的每个请求最终都会路由到控制器,然后是控制器中的操作方法(例如:/users/login可能映射到User控制器和login操作).

您可以在控制器的action方法中设置页面标题(或任何其他元信息),它知道请求是什么,但在呈现视图之前调用:

$request->setTitle('Home page');
Run Code Online (Sandbox Code Playgroud)

然后在您的视图中,只需渲染它:

<title><?php echo $request->getTitle(); ?></title>
Run Code Online (Sandbox Code Playgroud)

如果您刚刚开始学习PHP,那么现在是学习MVC的好时机,因为它会让您养成一些不仅影响您的PHP开发而且影响任何其他开发的良好习惯.

我建议您查看CodeIgniter的简单性和出色的文档.我使用CodeIgniter一段时间了,但最终编写了我自己的框架,更符合我的需求.