PHP如何克隆$ _SERVER ['REQUEST_URI']

时间:2017-03-23 01:32:44

标签: php .htaccess xampp

编辑:感谢您的回答,我意识到,当我使用FallbackResource从index.php提供所有页面时,每次加载脚本时,_$SERVER['REQUEST_URI']都将被更新。我将把根文件夹存储在index.php。

访问的文本文件或数据库条目中

再次感谢

我想知道当我调用它时,如何从$GLOBALS['rooturi'] = $_SERVER['REQUEST_URI']获取固定值。

我在index.php中设置它,以设置在另一个脚本中包含图像的根路径。我尝试过使用__DIR__."/images/",但我不想要文件系统位置(C:\ xampp \ htdocs \ file1 \ file2 \ website \ images)而不是URL版本(/ website / images /)

$GLOBALS['rooturi'] = $_SERVER['REQUEST_URI'];

问题是当我在另一个脚本中调用它时,它使用新脚本$_SERVER['REQUEST_URI']即。 (网站/图像/ 3 /图像/ 3)

我正在使用.htaccess FallbackResource index.php

提前致谢

2 个答案:

答案 0 :(得分:0)

在每个脚本开头包含的文件中声明全局变量,比如在配置文件中。

/site 
/site/config.php 
/site/index.php
/site/subdir 
/site/subdir/anotherfile.php

例如:

的config.php

<?php

$cfg = new stdClass();
$cfg->rooturi = $_SERVER['HTTP_HOST'].'/siteroot';

?>

的index.php

<?php
require_once('config.php');

echo $cfg->rooturi;

function somefunction(){
 global $cfg;

 echo 'In function '.$cfg->rooturi;
}

?>

子目录/ anotherfile.php

   <?php
        require_once('../config.php'); // see '../' to go one level above as this file is in a subdirectory

        echo $cfg->rooturi;

        function somefunction(){
         global $cfg;

         echo 'In function '.$cfg->rooturi;
        }

  ?>

...

答案 1 :(得分:0)

您可以在index.php

中尝试此操作
$path = str_replace('index.php', '', $_SERVER['PHP_SELF']);
$baseUrl = 'http://' . $_SERVER['SERVER_NAME'] . $path;

$GLOBALS['rooturi'] = $baseUrl;

然后加载图片:

<img src="<?php echo $GLOBALS['rooturi'] ?>/images/something.png" />