Skip to content
Advertisement

Dynamically get path to file

I’m making a website and I’ve moved all the contents of the HTML <head> to a header.php file, in which I link to my stylesheets, etc..

On my other pages I’m including this document. But when I include it in pages that are in a sub folder, the link to the stylesheet is no longer correct, I’ve solved it by just copying the link and adding ../ I was wondering if there is a better way to do this? like dynamically get the right path? Without using the absolute path, like I want to be able to move the project folder and still have it work.

header.php

<?php
session_start();
?>

<!DOCTYPE html>
<html lang="nb" dir="ltr">  
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta charset="utf-8">
  
    <!-- CSS -->
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet"  type="text/css" href="./css/style.css?<?php echo time(); ?>">
    <link rel="stylesheet"  type="text/css" href="../css/style.css?<?php echo time(); ?>">
    <link rel="stylesheet"  type="text/css" href="../../css/style.css?<?php echo time(); ?>">

    <!-- Title -->
    <title>Inventar</title>
</head>
<body>
    

And then i have:

<?php
include "header.php";
?>

on all my pages.

Advertisement

Answer

change header.php to

<?php
session_start();
?>

<!DOCTYPE html>
<html lang="nb" dir="ltr">  
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta charset="utf-8">
  
    <!-- CSS -->
    <link rel="stylesheet" href="<?=$tempPath;?>/css/reset.css">
    <link rel="stylesheet"  type="text/css" href="<?=$tempPath;?>/css/style.css?<?php echo time(); ?>">
    <!-- Title -->
    <title>Inventar</title>
</head>
<body>

whenever you include add path define the variable

<?php
 $tempPath="../";//like this add path according to the file
include "header.php";
?>

Also if needed you can use dirname(__FILE__) so that you can define path from header.php

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement