假设我有一个指向另一篇文档的URL(可以是绝对路径或相对路径),我需要将此链接转换为绝对路径。
我编写了一个简单的函数,以提供几种常见情况下的功能:
代码运行良好,但可能存在一些无法正常工作的情况,例如
我曾经尝试在Google上搜索并查看类似的问题(一个 和 两个),但这似乎是与服务器路径相关的解决方案,而不是我正在寻找的东西。
我编写了一个简单的函数,以提供几种常见情况下的功能:
function absolute_url($url,$parent_url){
$parent_url=parse_url($parent_url);
if(strcmp(substr($url,0,7),'http://')==0){
return $url;
}
elseif(strcmp(substr($url,0,1),'/')==0){
return $parent_url['scheme']."://".$parent_url['host'].$url;
}
else{
$path=$parent_url['path'];
$path=substr($path,0,strrpos($path,'/'));
return $parent_url['scheme']."://".$parent_url['host']."$path/".$url;
}
}
$parent_url='http://example.com/path/to/file/name.php?abc=abc';
echo absolute_url('name2.php',$parent_url)."\n";
// output http://example.com/path/to/file/name2.php
echo absolute_url('/name2.php',$parent_url)."\n";
// output http://example.com/name2.php
echo absolute_url('http://name2.php',$parent_url)."\n";
// output http://name2.php
代码运行良好,但可能存在一些无法正常工作的情况,例如
../../path/to/file.php
。那么是否有更通用的标准类或函数可以完成这项工作,并比我的函数更好呢?我曾经尝试在Google上搜索并查看类似的问题(一个 和 两个),但这似乎是与服务器路径相关的解决方案,而不是我正在寻找的东西。
..\..\path\to\file.php
是一个文件路径,而不是一个 URL,因此需要一个单独的函数来处理。 - Steve<a href='..\..\path\to\file.php'>file</a>
不能工作吗? - Vlada Katlinskaya../../path/to/file.php
。 - Vlada Katlinskaya