访问的网址html里提取的链接路径转真实网址完整示范
<?php
//将相对路径转换为绝对路径
function rel2abs($base, $rel) {
if (parse_url($rel, PHP_URL_SCHEME) != '') return $rel;
if ($rel[0] == '#' || $rel[0] == '?') return $base.$rel;
extract(parse_url($base));
$path = preg_replace('#/[^/]*$#', '', $path);
if ($rel[0] == '/') $path = '';
$abs = "$host$path/$rel";
$re = array('#(/\.?/)#', '#/(?!\.\.)[^/]+/\.\./#');
for($n=1; $n>0; $abs=preg_replace($re,'/', $abs,-1,$n)) {}
return $scheme.'://'.$abs;
}
//示范数据
$base = "http://100.96448.cn/1/2/3.php"; //访问的网址
$relx = "01/02/03.php|/01/02/03.php|./01/02/03.php|../01/02/03.php|../../01/02/03.php|".$base;
echo "<br>$rel@".$base;
$rels = explode("|",Trim($relx,"|")); //拆分的路径详见输出
foreach($rels as $rel){
echo "<br>$rel===>".rel2abs($base, $rel);
}