使用php自动检测UA站点和生产站点上的站点根路径

时间:2017-02-22 16:08:07

标签: php

以下是这种情况,我想从网站根目录调用图像(而不是使用../),

生产网站:http://www.example.com/details/
图像路径为/img/header/logo.png

在UAT http://www.testingserver.com/abc-ver3/details/上 图像路径为/abc-ver3/img/header/logo.png

在当地http://localhost/abc/上 图像路径为/abc/img/header/logo.png

我目前正在使用一种愚蠢的方式来获取网站的根目录:

文件/includes/layout.php中的

<?php $siteroot = '/abc'; ?>
<img src="<?php echo $siteroot ?>/img/header/logo.png" alt="ABC Co.">

我在部署到另一台服务器时手动更改路径

无论如何都要自动检测根路径?

对不起愚蠢的问题,但我找不到路。

2 个答案:

答案 0 :(得分:0)

快速又脏,

$server     = $_SERVER['SERVER_NAME'];
$siteroot       = 'details'; //default val

if(substr_count($server, 'example.com.'))
    $siteroot   = 'details';
else if(substr_count($server, 'tetsingserver.com'))
    $siteroot   = 'abc-ver3/details';
else
    $siteroot   = 'abc';

return $siteroot;

这是一种执行此操作的黑客方式。

理想情况下,这将进入引导程序。 OOP为胜利。

快乐编码

答案 1 :(得分:0)

我刚发现另一种在我的本地工作的脏方法,不确定它是否适用于生产网站:

in /includes/layout.php

$path = dirname(__FILE__); //returns "C:\wamp64\www\abc\includes" 
$path = str_replace("\\","/",$path) //returns "C:/wamp64/www/abc/includes"
$path = str_replace($_SERVER["DOCUMENT_ROOT"],"",$path) //returns "/abc/includes"
$siteRoot=str_replace('/includes','',$path) //returns "/abc"


or in short:

$siteRoot=str_replace('/includes','',str_replace($_SERVER["DOCUMENT_ROOT"],'',str_replace("\\","/",dirname(__FILE__))));