Creating a PHP Header/Footer

How include footer and header in my views?

To include the header and footer file in a page, use the include statement:

<!--header start -->
<?php include("includes/header.php"); ?>
<!--header end -->

<div class="container">
</div>

<!--footer start -->
<?php include("includes/footer.php"); ?>
<!--footer end -->

require will produce a fatal error (E_COMPILE_ERROR) and stop the script.

include will only produce a warning (E_WARNING) and the script will continue

So, If you want the execution to go on and show users the output, even if the include file is missing, use the include statement.

how to create header php footer php or sidebar.php

Just create the file header.php and use the get_header() function to include it in your index.php. To include your footer.php you can use the get_footer() function.

header.php

<!---Header--->

<ul class="navbar">
<li><a href="#">navbar</a>
<a href="#">navbar</a>
<a href="#">navbar</a>
<a href="#">navbar</a>
<a href="#">navbar</a></li>
</ul>

footer.php

<!----footer--->

<footer class="w3-container w3-green">
<p>lorem ipsum lorem ipsum lorem ipsum lorem ipsum</p>
</footer>

index.php

<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
<?php get_header(); ?>
<main>Main content</main>
<?php get_footer(); ?>
</body>
</html>

What is the best practice to include header and footer in PHP?

There's multiple ways to fix this.

  1. Use a templating engine, like Blade or Twig.
  2. Create an autoloader

Blade will allow you to make a layout, which can look like this:

<html>
<head>
<title>App Name - @yield('title')</title>
@yield('css')
</head>
<body>
<!-- Include all your files -->
@php
include('myfile.php');
@endphp

<div class="container">
@yield('content')
</div>

@yield('js')
</body>
</html>

Then for every other page you can create a blade file that extends the layout.

@extends('layout.file')

@section('title', 'Page Title')

@section('content')
<p>This content will be placed in the container in the layout.</p>
@endsection

You can write an auto-loader by yourself or use a pre-written one. I'm not going to attempt writing one because I usually go with the pre-written ones.

This should give you an idea though.

how to create a custom header and footer in drupal 7

you can use ( php include ) and put your header and footer codes in two separate files with .inc format:

  1. in template folder create header.inc and footer.inc files and put your code in these files.
  2. now go to your html.tpl.php file and put the following code anywhere you want to display your header:
<?php include 'header.inc'; ?>

  1. and put the following code anywhere you want to display your footer:
<?php include 'footer.inc'; ?>

Whats the best way to including Header Footer in PHP?

This is from a few years ago by Harvard's CS50 class:

function render($template, $values = array()){

// if template exists, render it
if (file_exists("../views/$template")){

// extract variables into local scope
extract($values);

// render header_form
require("../views/header_form.php");

// render template
require("../views/$template");

// render footer
require("../views/footer_form.php");

}else{

// else err
trigger_error("Invalid template: $template", E_USER_ERROR);

}
}

make sure your header has <!DOCTYPE html><html><head></head><body> and your footer has closing </body></html>

As far as whether or not to include navigation in the header it depends on whether or not you want every page to have the same navigation

header, footer divs placement in separate files

PHP allows you to include additional files into the one currently running, with the include or require statement.

This will allow you to have a common header and footer that are included on the server so that you only have one page returned to the browser without needing to request additional HTML pages.

header.php

<header>Place your header content here</header>

footer.php

<footer>Place your footer content here</footer>

index.html

<html>
<body>

<?php include 'header.php';?>
<p>Some text.</p>
<p>Some more text.</p>
<?php include 'footer.php';?>

</body>
</html>

Is it possible to link to a header.php and footer.php from different folder sources?

Yes it is possible to use a single footer.php and single header.php files and load them anytime you need.

What I would suggest you can do is that you create an include folder, then inside the include folder create another folder called common where by you will place website that elements that are always the same throughout the website ie, footer and header.

then I would also place a functions file inside the includes where I will place my website functions. Included in this function file is a function that I will use anytime I want to use the header.php and footer.php files.

Sample Image

Functions.php

<?php

function loadView($viename,$meta=[]){
//load footer/header page
include_once "common/$viename.php";
}

//any other functions

The loadView() function is used anytime you want to load these two dynamic files. This functions takes two parameters 1 optional. The first parameter is the name of the view you want to load which is header or footer then the second optional is the meta information important for the header file, as the page title and meta description needs to be dynamic and change according to the page.

header.php

<!DOCTYPE html>
<html>
<head>
<title><?=$meta['pagetitle']?><!-- Dynamic page title --></title>
<meta name="description" content="<?=$meta['pagedescription']?>"><!-- Dynamic description -->

<!-- load your styles -->
</head>
<body>
<header>
<nav>
<!-- Your page navigation -->
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="about.php">About</a></li>
<li><a href="anotherpage">Another Page</a>
</ul>
</nav>
</header>

footer.php

<footer>
footer content

<p>© website name <?=date('Y')?>
</footer>

</body>
</html>

Main website pages

Your main website pages are pages such as index, about,services etc.

In these pages you would load the functions file, then be able to load the header and footer.

index.php

<?php
include 'includes/functions.php';

//meta info
$meta = array(
'pagetitle' => 'Welcome to my site | site | bla bla',
'pagedescription' => 'This is your website description'
);

loadview('header',$meta); //load heade
?>

<section>
<div id="content">
<p>Page Content</p>
</div>

</section>
<?php

loadview("footer"); //load footer
?>

About Page

<?php
include 'includes/functions.php';
$meta = array(
'pagetitle' => 'About Us',
'pagedescription' => 'This is about page'
);

loadview('header',$meta);
?>

<section>
<div id="content">
<p>Page Content</p>
</div>

</section>
<!-- load footer -->
<?php

loadview("footer");
?>

Hope this gives you the idea on how you could achieve your goal, there are many ways you can achieve this.

Let me know when you need any help



Related Topics



Leave a reply



Submit