大多数开发人员在脚本当前位置下访问文件的方式是什么?
一个比另一个更有效吗?
$stuff=file_get_contents('../somedirectory/somefile.json'); //This doesn't work. Just curious why?
$stuff=file_get_contents(dirname(__DIR__).'/somedirectory/somefile.json');
$stuff=file_get_contents(__DIR__.'/../somedirectory/somefile.json');
$stuff=file_get_contents('/var/www/mysite/somedirectory/somefile.json');
require_once('../somedirectory/somefile.php'); //This doesn't work. Just curious why?
require_once(dirname(__DIR__).'/somedirectory/somefile.php');
require_once(__DIR__.'/../somedirectory/somefile.php');
require_once('/var/www/mysite/somedirectory/somefile.php');
答案 0 :(得分:4)
这主要是一个意见问题,但您在开源PHP中看到的最多只是使用__DIR__
常量加上相对路径,例如:
require_once __DIR__ . '/../foo.php';
仅使用../
始终相对于当前工作目录,因此通常(即大多数情况下)不可用:
require_once getcwd() . '/foo.php';
// is equivalent to:
require_once './foo.php';