在php中将绝对路径转换为相对路径

时间:2010-11-13 23:19:12

标签: php relative-path

我想将绝对路径转换为相对路径。

这是当前绝对代码的样子

$sitefolder  = "/wmt/";
$adminfolder = "/wmt/admin/";

$site_path = $_SERVER["DOCUMENT_ROOT"]."$sitefolder";

// $site_path ="//winam/refiller/";

$admin_path = $site_path . "$adminfolder";

$site_url    = "http://".$_SERVER["HTTP_HOST"]."$sitefolder";
$admin_url   = $site_url . "$adminfolder";

$site_images = $site_url."images/"; 

因此,例如,上面的代码会为您提供

的网站网址
www.temiremi.com/wmt 

并访问该文件将提供

www.temiremi.com/wmt/folder1.php

我想要做的是我要屏蔽temiremi.com/wmt并将其替换为dolapo.com,因此它会说www.dolapo.com/folder1.php

是否可以通过相对路径来做到这一点。

我是初学者编码员。我付钱给别人为我做点什么,但我想现在就自己做。

3 个答案:

答案 0 :(得分:2)

问题是你的问题虽然看起来非常具体,却缺少一些重要的细节。

如果您发布的脚本始终被执行,并且您始终希望它转到delapo.com而不是temiremi.com,那么您只需要替换

$site_url    = "http://".$_SERVER["HTTP_HOST"]."$sitefolder";

$site_url    = "http://www.delapo.com/$sitefolder";

$_SERVER["HTTP_HOST"]变量将返回所请求站点的域。因此,如果用户转到www.temiremi.com/myscript.php(假设您发布的脚本保存在名为myscript.php的文件中),则$_SERVER["HTTP_HOST"]只返回www.temiremi.com

另一方面,您可能无法始终重定向到同一个域,或者您可能希望脚本能够轻松适应不同的域,而无需在将来挖掘代码层。如果是这种情况,那么您需要一种方法来确定您希望链接到哪个域。

如果您在temiremi.com上托管了一个网站,但是您希望它看起来像是从delapo.com访问,那么这不是PHP可以解决的问题。您必须先delapo.com重定向到temiremi.com,或者只是首先托管delapo.com

如果情况恰好相反,您希望在delapo.com上托管网站,但您希望用户访问temiremi.com,那么简单地重写链接并不是一个足够复杂的答案。此策略会在用户单击链接时将用户重定向到其他域。相反,您需要设置代理才能转发信息。代理脚本的复杂程度各不相同,但最简单的就是:

<?php
    $site = file_get_contents("http://www.delapo.com/$sitefolder");
    echo $site;
?>

所以你看,我们真的需要更多关于为什么你需要这个脚本及其预期目的的信息,以便为你提供帮助。

答案 1 :(得分:0)

这在HTTP服务器配置中要容易得多。例如,使用Apache's VHost

答案 2 :(得分:0)

我不确定你的目标是什么,这看起来不像是通往相对路径的绝对路径,而是通往另一条路径的绝对路径。

您是否总是试图将“www.temiremi.com/wmt/”更改为“delapo.com”?如果是这种情况,您只需要简单的字符串替换而不是$ _SERVER变量或路径函数。

$alteredPath = str_replace("www.temiremi.com/wmt/", "delapo.com", $oldPath);
OR
$alteredParth "www.delapo.com/" . basename($oldPath)

如果我误解请解释,我不知道你是否需要这个更强大/通用,你有点把我扔到一个循环“dolapo.com”(当我第一次想到你的头衔时,我最初想到将路径与$ _SERVER中的值进行比较并删除公共部分,)

如上所述,如果您只是想让URL显示用户(在地址栏或链接中)看起来不同PHP就无法做到这一点。