Hướng dẫn php include parent directory
In laymans terms, and practicality, I see this as an old DOS trick/thing. Whoa! What was that? DOS? Never heard of it! ".." backs you out of the current sub-directory one time to a higher folder/directory, and .. enter typed twice backs you out too 2 higher parent folders. Keep adding the ".. enter" back to back and you will soon find yourself at the top level of the directory. As for Newbies to understand this better, consider this (in terms of the home PC or "C:\ drive" if you know what that means, rather than the web-servers/host "root directory" ). While your at it, Consider your website existing somewhere on your home PC's hard drive, buried in some folder under the C:\ drive. Lastly, you can think of it as ".." is back one directory and "/" is forward one directory/folder. Now! If you are using the command prompt and are within the "myDocuments" folder of your PC you must back out of that folder to get closer to the higher directory "C:\" by typing the "../". If you wanted to access a file that is located in the widows directory while you are still in the myDocuments folder you would theoretically type ../windows; in reality of DOS command prompt you would simply type .., but I am setting you up for the web. The / redirects forward to another directory naturally. Using "myDocuments" lets pretend that you created 2 folders within it called "PHP1" and "PHP2", in such we now have the folders:
In PHP1 you place a file called index.php. and in PHP2 folder you placed a file called Found.php. it now becomes:
Inside the C:\myDocuments\PHP1\index.php file you would need to edit and type something like:
The ../ is positional thus it considers your current file location "C:\myDocuments\PHP1\index.php" and is a directive telling it to back out of PHP1 directory and enter or move forward into PHP2 directory to look for the Found.php file. But does it read it? See my thoughts on trouble shooting below. Now! suppose you have 1 folder PHP1 and a sub-folder PHP2:
you would simply reference/code
as PHP2 exist as a sub-directory, below or within PHP1 directory. If the above does not work it may have something to do with access/htaccess or permission to the directory or a typo. To enhance this...getting into trouble shooting...If the "found.php" file has errors/typo's within it, it will crash upon rendering at the error, such could be the reason (require/require_once) that you are experiencing the illusion that it is not changing directories or accessing the file. At last thought on the matter, you may need to instantiate your functions or references in order to use the included/require "whatever" by creating a new variable or object such as
Remember, just because you are including/requiring something, sometimes means just that, it is included/required to run, but it might need to be recreated to make it active or access it. New will surely re-create an instance of it "if it is readable" and make it available within the current document while preserving the original. However you should reference the newly created variable $newObject in all instances....if its global. To put this in perspective of some web host account; the web host is some whopping over sized hard-drive (like that on your PC) and your domain is nothing more than a folder they
have assigned to you. Your folder is called the root. Inside that folder you can do anything you are allowed to do. your "one of many ways" to move between directories/folders is to use the
In PHP, what would be the cleanest way to get the parent directory of the current running script relative to the www root? Assume I have:
Or just:
And I need to get EDIT I need to get a path relative to the www root, asked Dec 10, 2009 at 16:08 Tatu UlmanenTatu Ulmanen 121k33 gold badges183 silver badges182 bronze badges If your script is located in
or
EditThis is a technique used in many frameworks to determine relative paths from the app_root. File structure: /var/ www/ index.php subdir/ library.php index.php is my dispatcher/boostrap file that all requests are routed to:
library.php is some file located an extra directory down and I need to determine the path relative to the app root (/var/www/).
There's probably a better way to calculate the relative path then answered Dec 10, 2009 at 16:09 Mike BMike B 31.6k13 gold badges85 silver badges111 bronze badges 5 As of PHP 5.3.0 you can use
See PHP Magic constants.
answered Jan 29, 2014 at 9:08 To get the parentdir of the current script.
answered Apr 17, 2014 at 17:25 hanshans 1111 silver badge3 bronze badges If I properly understood your question, supposing your running script is
This would give you the parent directory of your running script relative to the document www:
If you want the parent directory of your running script relative to server root:
answered May 9, 2011 at 19:19 Marco DemaioMarco Demaio 32.7k33 gold badges126 silver badges157 bronze badges 2 I Hope this will help you.
Output :
answered Jun 2, 2017 at 10:38 Vignesh KMVignesh KM 1,7861 gold badge17 silver badges23 bronze badges Fugly, but this will do it:
Sliq 15k24 gold badges105 silver badges139 bronze badges answered Aug 30, 2013 at 20:37 BradBrad 511 silver badge1 bronze badge
answered Dec 10, 2009 at 16:10 1 Here is what I use since I am not running > 5.2
Double dirname with file as suggested by @mike b for the parent directory, and current directory is found by just using that syntax once. Note this function only returns the NAME, slashes have to be added afterwards. answered Jun 11, 2013 at 0:49 AlexAlex 9,0527 gold badges38 silver badges80 bronze badges This is a function that I use. Created it once so I always have this functionality:
answered Feb 11, 2017 at 5:25 1 Try this. Works on both windows or linux server.. str_replace('\\','/',dirname(dirname(__FILE__))) answered Jan 15, 2014 at 9:37 This is also a possible solution
answered Jun 3, 2015 at 11:12 I hope this will help
answered Mar 2, 2018 at 2:10 Got it myself, it's a bit kludgy but it works:
So if I have answered Dec 10, 2009 at 17:55 Tatu UlmanenTatu Ulmanen 121k33 gold badges183 silver badges182 bronze badges 1 |