By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,775 Members | 1,306 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,775 IT Pros & Developers. It's quick & easy.

can an included file find out where it's been included from?

P: n/a
suppose i have 3 files:

script.php
somedir/include.php
somedir/config.php

1. script.php includes include.php
2. include.php includes config.php, so the structure looks like a cascade

now if i include config.php (without path) from include.php the script
tries to include from the directory script.php is in, which makes sense but
is not what i want.

question: how can i find out which dir include.php has been included from?

micha
Jul 17 '05 #1
Share this Question
Share on Google+
6 Replies


P: n/a
I know you can do with the $_SERVER array to find this information out,
but after a while the resulting code gets a bit messy.

Specifically:
$_SERVER['SCRIPT_FILENAME']
$_SERVER['PATH_TRANSLATED']
$_SERVER['SCRIPT_NAME']

Also, you may want to look into _FILE_, as documented here...
http://us3.php.net/manual/en/languag...predefined.php

When you get a chance, take some time out and really look at your file
structure and intereactivity between directories. You may find it would
be cleaner/easier to restructure things a bit.

~D

Jul 17 '05 #2

P: n/a
micha wrote:
suppose i have 3 files:

script.php
somedir/include.php
somedir/config.php

1. script.php includes include.php
2. include.php includes config.php, so the structure looks like a cascade

now if i include config.php (without path) from include.php the script
tries to include from the directory script.php is in, which makes sense but
is not what i want.

question: how can i find out which dir include.php has been included from?

micha


Micha,

Use the full absolute path to the file

<? include ($_SERVER['DOCUMENT_ROOT'] . '/somedir/config.php'); ?>

$_SERVER['DOCUMENT_ROOT'] gives you the absolute path to the root
directory for your web site. Then just concatenate the path and
filename to the one you want included.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 17 '05 #3

P: n/a
Another possible option is to simply use get_included_files() as IIRC
it returns the full path.

Jul 17 '05 #5

P: n/a
micha <ch*********@web.de> wrote in
news:Xn*************************@204.153.244.170:
suppose i have 3 files:

script.php
somedir/include.php
somedir/config.php

1. script.php includes include.php
2. include.php includes config.php, so the structure looks like a
cascade

now if i include config.php (without path) from include.php the script
tries to include from the directory script.php is in, which makes
sense but is not what i want.

question: how can i find out which dir include.php has been included
from?

micha


thanks for that many responses.

in case somebody is interested, i tested them:

1. $_SERVER['SCRIPT_FILENAME'], $_SERVER['PATH_TRANSLATED'], $_SERVER
['SCRIPT_NAME'] don't work, delivers information about the parent script,
even if the they're called from the included script.

2. __FILE__ works a treat - that's what i'm going to use

3. get_included_files() works equally well, but delivers an array that
i'd have to process.

4. debug_backtrace() does not work. i'd have to call it before file
inclusion, so i doesn't deliver any information about the files

micha

--
Jul 17 '05 #6

P: n/a
micha wrote:
question: how can i find out which dir include.php has been included from?

<snip>

Question flagged for FAQ.

--
<?php echo 'Just another PHP saint'; ?>
Email: rrjanbiah-at-Y!com Blog: http://rajeshanbiah.blogspot.com/

Jul 17 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.