Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中将绝对路径转换为相对路径_Php_Relative Path - Fatal编程技术网

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

在php中将绝对路径转换为相对路径,php,relative-path,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://".$_SERV

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

这就是当前绝对代码的外观

$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/"; 
例如,上面的代码将为您提供一个站点url

www.temiremi.com/wmt 
访问其中的文件会

www.temiremi.com/wmt/folder1.php
我想做的是,我想屏蔽
temiremi.com/wmt
并用dolapo.com替换它,所以它会说
www.dolapo.com/folder1.php

是否可以使用相对路径来实现这一点


我是个初学者。我花钱请人帮我做点事,但我现在想自己动手做

在HTTP服务器配置中,这样做要容易得多。例如,使用

我不确定你要做什么,因为这看起来不像绝对路径到相对路径,而是一条绝对路径到另一条绝对路径

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

$alteredPath = str_replace("www.temiremi.com/wmt/", "delapo.com", $oldPath);
OR
$alteredParth "www.delapo.com/" . basename($oldPath)
如果我误解了,请解释一下,我不知道您是否需要更健壮/通用,您有点让我对“dolapo.com”产生了兴趣(当我第一次想到您的标题时,我最初想到的是将路径与$\u服务器的值进行比较,并删除公共部分。)


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

问题是,您的问题虽然看起来非常具体,但缺少一些关键细节

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

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

$\u服务器[“HTTP\u主机”]
变量将返回请求的任何站点的域。因此,如果用户转到
www.temiremi.com/myscript.php
(假设您发布的脚本保存在名为
myscript.php
的文件中),那么
$\u服务器[“HTTP\u主机”]
只返回
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;
?>


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

你不能屏蔽这个域,当然不能用php。如果您同时拥有这两个域,请将站点托管在另一个域中,或将另一个域指向当前服务器。这不是php。您只是想更改特定页面中的某些值吗?如果你想一刀切地这么做,我开始觉得我误解了,我的回答没有帮助,但我还是留着以防万一。另一个问题是“相对”什么?如果您有temiremi.com/wmt/dir1/file.php,那么应该如何知道您是想在“wmt”之后还是在“dir1”之后划一条线?我希望问题真正是如何将绝对路径转换为相对路径,而不是一般的特定问题描述。一般的问题要有趣得多。塞芬尼:我有点困惑。所以现在你有一个网站托管在kroesbergens.com上,可以通过temiremi.com访问(即,两个域指向同一个主机)。此外,您还可以将dolapo.com重定向到temiremi.com。我的问题是,你在哪里,为什么要生成这个绝对路径?你有指向它的
链接吗?或者,您是否试图在不更改用户在其URL栏中看到的内容的情况下显示其他网站的内容?(顺便说一下,出于SEO原因,不建议这样做)是的,我认为字符串替换是最好的选择。但是地址栏上会出现吗?就像我只想用delapo.com替换temiremi.com/wmt一样。这就是我想要做的。并确保它显示在地址栏中(这样它就可以成为书签,也就是说,它可以调用)。如果页面确实位于delapo.com,请使用header()重定向到那里。如果不是,那么你不能用PHPI“欺骗”地址栏。我也会尝试这个选项。我让我的朋友来安排这件事。我会让你知道结果的。
<?php
    $site = file_get_contents("http://www.delapo.com/$sitefolder");
    echo $site;
?>