Я разрабатываю относительно простой сайт для друга. Я хотел бы внедрить php, чтобы он мог изменять свой верхний / нижний колонтитул без необходимости возвращаться через каждый файл. Проблема в том, что я почти полностью не знаком с тем, как работает php. Есть ли упрощенный способ сделать это? Я видел несколько ответов о том, как создать php-заголовок, но все они кажутся разными, и у меня не было большого успеха. Я не говорю, что они не работают (я, вероятно, сделал это неправильно), но чем проще в этом случае, тем лучше.
Благодаря!
Помимо использования include()
или include_once()
для включения верхнего и нижнего колонтитула, одна вещь, которую я нашел полезной, может содержать заголовок пользовательской страницы или собственные теги заголовков для каждой страницы, но все же имеет заголовок в частичное включение. Обычно я выполняю это следующим образом:
На страницах сайта:
<?php $PageTitle="New Page Title"; function customPageHeader(){?> <!--Arbitrary HTML Tags--> <?php } include_once('header.php'); //body contents go here include_once('footer.php'); ?>
И в файле header.php:
<!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title><?= isset($PageTitle) ? $PageTitle : "Default Title"?></title> <!-- Additional tags here --> <?php if (function_exists('customPageHeader')){ customPageHeader(); }?> </head> <body>
Возможно, это немного выходит за рамки вашего первоначального вопроса, но полезно добавить немного большей гибкости при включении.
Просто создайте файл header.php и где вы хотите его использовать:
<?php include('header.php'); ?>
в<?php include('header.php'); ?>
То же самое с нижним колонтитулом. Вам не нужны теги php в этих файлах, если у вас есть только html.
Подробнее см. Здесь:
Вы можете сделать это, используя функцию include_once()
в php. footer.php
заголовочную часть в имени header.php
и footer.php
часть footer.php
. Наконец, включите все содержимое в один файл.
Например:
header.php
<html> <title> <link href="sample.css">
footer.php
</html>
Таким образом, финальные файлы выглядят как
include_once("header.php") body content(The body content changes based on the file dynamically) include_once("footer.php")
чем проще, тем лучше.
index.php
<? if (empty($_SERVER['QUERY_STRING'])) { $name="index"; } else { $name=basename($_SERVER['QUERY_STRING']); } $file="txt/".$name.".htm"; if (is_readable($file)) { include 'header.php'; readfile($file); } else { header("HTTP/1.0 404 Not Found"); exit; } ?>
header.php
<a href="index.php">Main page</a><br> <a href=?about>About</a><br> <a href=?links>Links</a><br> <br><br>
фактические статические html-страницы, хранящиеся в папке txt
в формате .htm.
Вы можете использовать это для заголовка: Важно: Поместите на страницы PHP, на которые вы хотите включить контент, следующее.
<?php //at top: require('header.php'); ?> <?php // at bottom: require('footer.php'); ?>
Вы также можете включить глобальный навигатор, просто используйте это вместо этого:
<?php // At top: require('header.php'); ?> <?php // At bottom: require('footer.php'); ?> <?php //Wherever navbar goes: require('navbar.php'); ?>
В header.php:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> </head> <body>
Не закрывайте теги Body или Html!
Включите html здесь:
<?php //Or more global php here: ?>
footer.php:
Код здесь:
<?php //code ?>
Navbar.php:
<p> Include html code here</p> <?php //Include Navbar PHP code here ?>