1
votes

I need to include one PHP file into another. The PHP file that needs to be included sits in a separate directory though. This is how it is set up:

folder1/global-functions.php
folder1/folder2/functions.php

I need to include the 'global-functions.php' in the 'functions.php'

I tried:

<?php include("../global-functions.php"); ?>

But this will not work. It returns this error message:

Warning: include(../global-functions.php) [function.include]: failed to open stream: No such file or directory in /home/user/public_html/wp-content/themes/folder1/folder2/custom_functions.php on line 2

Warning: include() [function.include]: Failed opening '../global-functions.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/user/public_html/wp-content/themes/folder1/folder2/custom_functions.php on line 2

3
you want to include your global-functions but in your code, you included just functions.php. ..i think you have to change it to <?php include("../global-functions.php"); ?>sailhenz
I think you are trying wrong...<?php include("../global-functions.php"); ?>Rikesh

3 Answers

2
votes

Try including the file with an absolute path: something like this:

<?php include ($_SERVER['DOCUMENT_ROOT']."/folder1/global-functions.php");?>
0
votes

Your original include fails because... the relative path in your include is relative to the current directory, which in your case is not "folder1/folder2/". The current directory is likely to be the page from which you are serving your content.

You need to either use an absolute path (with the help of $_SERVER['DOCUMENT_ROOT'] as in @Coomie's answer) or change your include_path to include the location of your included files (but then you must not use a relative path, but you wouldn't need to anyway).

0
votes

You are including functions.php in itself. Change functions.php to global-functions.php.

And just out of curiosity, why have different files for functions? Why not make classes and objects and make your life easier?