Php 如何动态更改绝对路径?
这是我们为绝对路径键入的内容:-Php 如何动态更改绝对路径?,php,apache,absolute-path,document-root,Php,Apache,Absolute Path,Document Root,这是我们为绝对路径键入的内容:- echo $_SERVER['DOCUMENT_ROOT']; 输出如下:- C:/xampp/htdocs 目前我正在一个名为“项目””的文件夹中工作,因此我的项目根目录是:- echo $_SERVER['DOCUMENT_ROOT'].'/project'; 输出将是 C:/xampp/htdocs/project 现在,如果我用文件夹名将项目上载到web服务器,请说“网站”,我需要更改 echo $_SERVER['DOCUMENT_ROOT']
echo $_SERVER['DOCUMENT_ROOT'];
输出如下:-
C:/xampp/htdocs
目前我正在一个名为“项目””的文件夹中工作,因此我的项目根目录是:-
echo $_SERVER['DOCUMENT_ROOT'].'/project';
输出将是
C:/xampp/htdocs/project
现在,如果我用文件夹名将项目上载到web服务器,请说“网站”,我需要更改
echo $_SERVER['DOCUMENT_ROOT'].'/project';
------------------------------------------
to
------------------------------------------
echo $_SERVER['DOCUMENT_ROOT'].'/website';
------------------------------------------
or if i upload it in root then
------------------------------------------
echo $_SERVER['DOCUMENT_ROOT'];
我需要在不同的文件夹和目录级别上存储文件。。。。那么,有没有办法让这个东西充满活力呢
我想尽量减少这个障碍,因为改名可能会造成大量的时间浪费
一旦我使用了/project,然后是/website,最后是直接使用root。。。可能是我们可以绕过这个障碍的任何把戏,或者是某种声明之类的东西。。所以,无论我们上传到哪里,我们只需更改文件中的一个名称,它就完成了。。。。类似于它的东西。使用
dirname(__FILE__)
如果您使用链接目录(将使用原始路径),这将不会像您预期的那样工作,这是CodeIgniter中的一个麻烦,例如使用
dirname(__FILE__)
如果您使用链接目录(将使用原始路径),这将不会像您预期的那样工作,这在CodeIgniter中是一个麻烦,例如您可以使用类似的东西
$environments = array(
'localhost' => 'development',
'example.com' => 'production',
);
$active_environment = 'development';
foreach( $environments as $key => $value ){
if( stristr( $_SERVER['SERVER_NAME'], $key ) ){
$active_environment = $value;
break;
}
}
define( 'ENVIRONMENT', $active_environment );
function getRoot(){
switch( ENVIRONMENT ){
case 'production' : return $_SERVER['DOCUMENT_ROOT'].'/website';
case 'development' :
case default: return $_SERVER['DOCUMENT_ROOT'].'/project';
}
}
你可以用这样的东西
$environments = array(
'localhost' => 'development',
'example.com' => 'production',
);
$active_environment = 'development';
foreach( $environments as $key => $value ){
if( stristr( $_SERVER['SERVER_NAME'], $key ) ){
$active_environment = $value;
break;
}
}
define( 'ENVIRONMENT', $active_environment );
function getRoot(){
switch( ENVIRONMENT ){
case 'production' : return $_SERVER['DOCUMENT_ROOT'].'/website';
case 'development' :
case default: return $_SERVER['DOCUMENT_ROOT'].'/project';
}
}
嘿,谢谢你的指导,我已经编辑了我的问题一点,请重新考虑。。。。谢天谢地,当项目的生命周期将其托管在多台机器上时,我们使用这种方法—localhost、dev、qa、stage和production。然后,所有配置设置都基于
环境
的值。现在,如果你只需要目录,dirname(\uuuu文件)
方法是最好的。但是如何使用dirname(\uu文件)
?嘿,谢谢你的指导,我已经编辑了我的问题,请重新考虑。。。。谢天谢地,当项目的生命周期将其托管在多台机器上时,我们使用这种方法—localhost、dev、qa、stage和production。然后,所有配置设置都基于环境
的值。现在,如果您只需要目录,dirname(\uuuu文件)
方法是最好的。但是如何使用dirname(\uu文件)
?我的问题是,我曾经使用过/project,然后是/website,最后是直接使用root。。。可能是我们可以绕过这个障碍的任何把戏,或者是某种声明之类的东西。。所以,无论我们上传到哪里,我们只需更改文件中的一个名称,它就完成了。。。。这就是漏洞所在,你不再声明$\u SERVER['DOCUMENT\u ROOT']./project'或类似的东西,你使用这个项目根目录,并且不再需要在任何环境下编辑它。让我们看看我的问题是,我曾经使用过/project,然后是/website,最后是直接到根目录。。。可能是我们可以绕过这个障碍的任何把戏,或者是某种声明之类的东西。。所以,无论我们上传到哪里,我们只需更改文件中的一个名称,它就完成了。。。。这就是漏洞所在,你不再声明$\u SERVER['DOCUMENT\u ROOT']./project'或类似的东西,而是使用这个项目根,不必再在任何环境中编辑它让我们