include path

I have a file located here:
     mySite.com/DataTables/Editor/php/Bootstrap.php

There is a line that contains:
        include( dirname(__FILE__).'/config.php' );

But I need to use this for various projects that link to different databases and i don't think I want all the files in DataTables in each project folder.  So I need config to be in each project folder:
   mySite.com/Project1/lib/config.php
   mySite.com/Project2/lib/config.php


Instead of using  dirname(__FILE__) Is there a way that I can get to the correct project?  or is dirname going to return what I want?
LVL 7
UniqueDataAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
Ray PaseurConnect With a Mentor Commented:
Then, in DataTables I use this in the include:
   include( $myPath.'/config.php' );
If you want a little more "portability" you may use the PHP constant DIRECTORY_SEPARATOR like this.  It's context-aware and will produce the correct type of slash for the operating system.

include( dirname(__FILE__) . DIRECTORY_SEPARATOR . 'config.php' );

In any case, be sure to read the man page carefully because PHP is not very clear about how it handles file paths!
http://php.net/manual/en/language.constants.predefined.php
0
 
Ray PaseurCommented:
What dirname() will return can be discerned via these pages.
http://php.net/manual/en/function.dirname.php
http://php.net/manual/en/language.constants.predefined.php

In the case with __FILE__, php says, "The full path and filename of the file with symlinks resolved. If used inside an include, the name of the included file is returned."
0
 
Brian TaoSenior Business Solutions ConsultantCommented:
You can (at least) do one of the follwoing:
1) add your library directory to "include_path" directive in php.ini, or
2) without access to php.ini, use relative path in your code, for example, something like: include("../../../library/config.php");
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
UniqueDataAuthor Commented:
but the thing is there will be multiple config files, one in each project folder, each with the connection string for the database for that project.
           
There is a  file is located in mySite.com/DataTables/Editor/php/Bootstrap.php, outside of any of the project folders, so that I don't have to copy all the DataTables files into each project folder.  Each project will have it's own page that has the statement:
      include( "../../DataTables/Editor/php/DataTables.php" );

This DataTables.php is the one with the statement:  include( dirname(__FILE__).'/config.php' );

So I need DataTables.php to know that it is being included from mySite.com/Project1/ or mySite.com/Project2/, etc.

So I guess, long story short:  how to the path of the file that called it?
0
 
UniqueDataAuthor Commented:
just thought of another way to clarify (I hope)

www.mySite.com/Project1/lib/config.php (contains connection info for database that Project1 uses)
www.mySite.com/Project1/lib/getMathFacts.php

www.mySite.com/Project2/lib/config.php (contains connection info for a different database that Project2 uses)
www.mySite.com/Project2/lib/getStateCapitols.php

each of the "get" php files has the same line:
      include( "../../DataTables/Editor/php/DataTables.php" );

www.mySite.com/DataTables/Editor/php/DataTables.php needs to include the config file.
        So if it was called from Project1 it includes www.mySite.com/Project1/lib/config.php.  
        If it is called from Project2 it includes www.mySite.com/Project2/lib/config.php
0
 
UniqueDataAuthor Commented:
oh my goodness.  I can't believe I didn't think of this...

right before I have my include DataTables I set a variable:
   $myPath = dirname(__FILE__), which would get the path of the current project

Then, in DataTables I use this in the include:
   include( $myPath.'/config.php' );
0
All Courses

From novice to tech pro — start learning today.