Grow your CSS skills. Land your dream job.

Last updated on:

PHP Include

Can be used multiple times:

<?php include("navigation.php"); ?>

Once only:

<?php include_once("navigation.php"); ?>

Including from the root:

<?php
   $path = $_SERVER['DOCUMENT_ROOT'];
   $path .= "/common/header.php";
   include_once($path);
?>

Reference URL

Comments

  1. Permalink to comment#

    Just a point to make, the include, incude_once and require equivalents are not functions and therefore do not need the parenthesis around the pathname.
    I am unsure of the origin of this bad habit.

    • I was just wondering about this, as I have always seen it with parenthesis but today I saw a code snippet somewhere that didn’t have them so I am glad I have this clear now.

      Thanks!

  2. Permalink to comment#

    well David, it’s obviously an alternative to use parenthesis and completely optional, it doesn’t make it any more correct or incorrect. Someone might have the same argument about spaces before and after brackets and colons in CSS.

    • Permalink to comment#

      I know it is optional but I bet that newcomers believe that require and include are functions because of the parenthesis. It does add confusion in my opinion.
      If you have a look at the official documentation you can see the official examples do not use parenthesis and it also cautions you on the use of parenthesis in certain situations.

      http://us.php.net/manual/en/function.include.php

  3. Although it does not create any difference whether using parenthesis or not. But really it can make difference in some situation. Visit David provided link again and give attention to example #5:

    http://php.net/manual/en/function.include.php

    I also have written an article, describing the difference between include and include_once, require etc.

    http://www.techmug.com/php-basics-for-beginners/

  4. I can’t seem to get this snippet to work in my WAMP install. Would like to get this to work so that I can call my includes from other directories.

    Warning: include_once(C:/wamp/www//common/header.php) [function.include-once]: failed to open stream: No such file or directory in C:\wamp\www\yourhearing\index.php on line 4

    If I remove the line include_once($path);, it works for the main index.php, but this will not work in any other directory.

    Any help is appreciated, THANKS.

    DIRECTORY STRUCTURE:
    /inc
    /js
    /css
    /img
    index.php

    • Never mind, I had a typo.

      I am still having an issue with pulling in my css and js for my other pages. I want to type mydomain.com/otherpage/ and pull in my css and js by include with head.php but when it includes the head it only displays the content and not the styling or js. Any ideas?

    • Sebastian
      Permalink to comment#

      I’m having the same issue as Digitalvaldosta. Content shows up, but not JS or CSS.

  5. Permalink to comment#

    hey i love your theme man

  6. Nick
    Permalink to comment#

    Using include without using parenthesis, my css wasn’t showing up, when I added parenthesis everything worked perfectly!

Leave a Comment

Posting Code

Markdown is supported in the comment area, so you can write inline code in backticks like `this` or multiline blocks of code in in triple backtick fences like ```this```. You don't need to escape code in backticks, Markdown does that for you.

Sadly, it's kind of broken. WordPress only accepts a subset of HTML in comments, which makes sense, because certainly some HTML can't be allowed, like <script> tags. But this stripping happens before the comment is processed by Markdown (via Jetpack). It seems to me that would be reversed, because after Markdown processes code in backticks, it's escaped, thus safe. If you think you can fix this issue, get in touch!

If you need to make sure the code (typically HTML) you post absolutely posts correctly, escape it and put it within <pre><code> tags.

Current ye@r *

*May or may not contain any actual "CSS" or "Tricks".