我是新来的perl,但想知道是否有人知道一个脚本,类似于下面的PHP版本,这很好!如何从Perl中的相对URL中找到完整的URL?
private function resolve_href ($base, $href) {
if (!$href)
return $base;
$rel_parsed = parse_url($href);
if (array_key_exists('scheme', $rel_parsed))
return $href;
$base_parsed = parse_url("$base ");
if (!array_key_exists('path', $base_parsed))
$base_parsed = parse_url("$base/ ");
if ($href{0} === "/")
$path = $href;
else
$path = dirname($base_parsed['path']) . "/$href";
$path = preg_replace('~/\./~', '/', $path);
$parts = array();
foreach (explode('/', preg_replace('~/+~', '/', $path)) as $part) {
if ($part === "..")
array_pop($parts);
elseif ($part!="")
$parts[] = $part;
}
$dir = ((array_key_exists('scheme', $base_parsed)) ? $base_parsed['scheme'] . '://' . $base_parsed['host'] : "") . "/" . implode("/", $parts);
return str_replace("\/", '', $dir);
}
任何帮助深表感谢
正是这样,我们都清楚这里究竟是什么功能呢?什么是输入,输出是什么? – CanSpice 2010-09-20 17:02:30
'$ base = http://foo.com/bar/poo/ $ href = ../ foobar' – 2010-09-20 17:20:08
一个PHP-> Perl转换器,是公众明智吗? – vol7ron 2010-09-20 17:48:20