Anthony Posted June 16, 2006 Share Posted June 16, 2006 I'm trying to figure how I can make my all my includes always work no matter where I save the file that is calling the include.For example.Let's say I have file1 and it calls file2.php like so:[code]include('file2.php');[/code]Now if I were to save file1.php into another folder the above would no longer work. I tried just adding a "/" in front of file2.php but that just errors out because it then goes back to the root of the PHP include path that is defined in php.ini.In a perfect world, say I moved file1.php two folders deep for some reason. The include would still work because even though I never touched file1.php it would still write out in the code:[code]include('../../'file2.php');[/code]So it seems that I would clearly need some variable that would update itself based on where the file and concatenate it to "file2.php" in this case.I've tried a ton of $_SERVER variables though and have had no luck. I'm starting to get the feeling that I'm making this a lot harder than it actually is.Any help would be greatly appreciated. Quote Link to comment https://forums.phpfreaks.com/topic/12177-creating-links-that-will-always-work-inside-include/ Share on other sites More sharing options...
dptr1988 Posted June 16, 2006 Share Posted June 16, 2006 If you have access to your 'php.ini' you could try setting the include_path variable If you don't have access to 'php.ini' you could try using the $_SERVER['SCRIPT_FILENAME'] variable to determine the location of the script you are running and then adjust you include path. Quote Link to comment https://forums.phpfreaks.com/topic/12177-creating-links-that-will-always-work-inside-include/#findComment-46392 Share on other sites More sharing options...
Anthony Posted June 16, 2006 Author Share Posted June 16, 2006 [!--quoteo(post=384693:date=Jun 16 2006, 02:15 PM:name=dptr1988)--][div class=\'quotetop\']QUOTE(dptr1988 @ Jun 16 2006, 02:15 PM) [snapback]384693[/snapback][/div][div class=\'quotemain\'][!--quotec--]If you have access to your 'php.ini' you could try setting the include_path variable If you don't have access to 'php.ini' you could try using the $_SERVER['SCRIPT_FILENAME'] variable to determine the location of the script you are running and then adjust you include path.[/quote]I've been playing around with PATH_TRANSLATED and others but they seem to tell me the where the include file is sitting not really where the file itself is sitting.My system ideally would work like this:1. A config.php file that sets variables and is included on every page2. The variables that are set in config.php are then used inside the page that is called to update the includes so t he page can always find the included files no matter where they are saved. Quote Link to comment https://forums.phpfreaks.com/topic/12177-creating-links-that-will-always-work-inside-include/#findComment-46394 Share on other sites More sharing options...
dptr1988 Posted June 16, 2006 Share Posted June 16, 2006 I don't think I understand what you are trying to do. If I have it right, you have a include file that is always moving around and file1.php and file2.php are staying in the sampe place? Or are file1.php and file2.php moving around? It would help me if you could post the which files are moving, which ones are not. Quote Link to comment https://forums.phpfreaks.com/topic/12177-creating-links-that-will-always-work-inside-include/#findComment-46396 Share on other sites More sharing options...
Anthony Posted June 16, 2006 Author Share Posted June 16, 2006 [!--quoteo(post=384698:date=Jun 16 2006, 02:29 PM:name=dptr1988)--][div class=\'quotetop\']QUOTE(dptr1988 @ Jun 16 2006, 02:29 PM) [snapback]384698[/snapback][/div][div class=\'quotemain\'][!--quotec--]I don't think I understand what you are trying to do. If I have it right, you have a include file that is always moving around and file1.php and file2.php are staying in the sampe place? Or are file1.php and file2.php moving around? It would help me if you could post the which files are moving, which ones are not.[/quote]The include files are always staying in the same place. There will be a config file, a header file, nav file, footer file, etc.The pages could potentially be contained anywhere inside of the site. Now with HTML its easy, put a "/" before linking to any file and it always goes back to the server root and finds the file itself. With PHP its not so easy....or so I think. Quote Link to comment https://forums.phpfreaks.com/topic/12177-creating-links-that-will-always-work-inside-include/#findComment-46404 Share on other sites More sharing options...
dptr1988 Posted June 16, 2006 Share Posted June 16, 2006 So you want to find the absolute path of your include files? The filenames in PHP need to be based on the real filesystem of your server rather then the virtual one that HTML uses. Does you $_SERVER['SCRIPT_FILENAME'] variable work? If it does then you can use that varible in your include files to find the absolute path to them. Then you could use the full path every time you included those files in the pages. I don't know what else to do ( in my limited knowledge ) if you can't use the $_SERVER['SCRIPT_FILENAME'] variable. Quote Link to comment https://forums.phpfreaks.com/topic/12177-creating-links-that-will-always-work-inside-include/#findComment-46409 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.