PHP

RELATIVE VS ABSOLUTE INCLUDE FILE PATH 

(quick guide & example)

ABSOLUTE - FULL PATH include "D:\\HTTP\\LIB\\SCRIPT.PHP";

RELATIVE VS ABSOLUTE PATH

01

RELATIVE - BASED ON CURRENT WORKING DIRECTORY (CWD) include "LIB\\SCRIPT.PHP";

IF WE RUN HTTP://SITE.COM/DEMO.PHP, RELATIVE PATH IS BASED ON CWD. CWD = D:\HTTP\ REQUIRE = D:\HTTP\LIB\SCRIPT.PHP

WHAT IS CWD?

02

THIS SCRIPT IS AT D:\HTTP\DEMO.PHP echo getcwd(); require  "LIB\\SCRIPT.PHP"

SCRIPT 1 - D:\HTTP\A.PHP include "lib/B.PHP"; SCRIPT 2 - D:\HTTP\LIB\B.PHP echo getcwd();

CWD PATH CONFUSION

03

CWD IS FIXED TO THE FIRST SCRIPT. URL = HTTP://SITE.COM/A.PHP CWD = D:\HTTP\ URL = HTTP://SITE.COM/LIB/B.PHP CWD = D:\HTTP\LIB\

SCRIPT 1 - D:\HTTP\A.PHP include "lib/B.PHP"; SCRIPT 2 - D:\HTTP\LIB\B.PHP echo __DIR__; echo __FILE__;

PHP MAGIC CONSTANTS

04

CONSTANTS FIXED TO THE SCRIPT URL = HTTP://SITE.COM/A.PHP CWD = D:\HTTP\ __DIR__ = D:\HTTP\LIB\ __FILE__ = D:\HTTP\LIB\B.PHP URL = HTTP://SITE.COM/LIB/B.PHP CWD = D:\HTTP\LIB\ __DIR__ = D:\HTTP\LIB\ __FILE__ = D:\HTTP\LIB\B.PHP