开发者

File path in php require

I've inherited some code:

include('../cfg/db_setup.php');
require('./fpdf/fpdf.php');
开发者_StackOverflow中文版

I know that ../cfg means start in the current directory, then go up one level and down into the cfg dir. What does the ./fpdf mean? I've never seen a single dot slash used in a file path, and can't seem to find the fpdf directory anywhere on our server, but the code is working so apparently it's there somewhere.


Just a note.

Relative paths don't are relative to the current include_path.

Relative paths, such as . or ../ are relative to the current working directory. The working directory is different if you run a script on CGI or command line or if a script is included by another script in another directory.

Therefore theoretically is not possible to be sure where these paths are pointing to without to know the context :P

To be sure, if PHP < 5.3:

include(dirname(__FILE__) . '/../cfg/db_setup.php');
require(dirname(__FILE__) . '/fpdf/fpdf.php');

If PHP >= 5.3:

include(__DIR__ . '/../cfg/db_setup.php');
require(__DIR__ . '/fpdf/fpdf.php');


. is defined as the current folder.

So, if the PHP script is located at /path/to/script/, then the second statement will look for /path/to/script/fpdf/fpdf.php


./ is the current directory. ./fpdf/ should be on the same path as the including file, or somewhere on the off the php include_path.


./ - this means in the current path

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜