show sidebar & content

PHP Script for Converting Relative to Absolute URL

18 Tem 2010 / 0 Comments / in Genel, PHP

This is a very simple PHP script to convert relative URL to its absolute path, given a base URL. e.g: converting lena.jpg to http://www.example.com/a/b/ali.jpg.

function rel2abs($rel, $base)

{
/* return if already absolute URL */
if (parse_url($rel, PHP_URL_SCHEME) != '') return $rel;

/* queries and anchors */

if ($rel[0]=='#' || $rel[0]=='?') return $base.$rel;

/* parse base URL and convert to local variables:

$scheme, $host, $path */
extract(parse_url($base));

/* remove non-directory element from path */

$path = preg_replace('#/[^/]*$#', '', $path);

/* destroy path if relative url points to root */

if ($rel[0] == '/') $path = '';

/* dirty absolute URL */
$abs = "$host$path/$rel";

/* replace '//' or '/./' or '/foo/../' with '/' */

$re = array('#(/.?/)#', '#/(?!..)[^/]+/../#');

for($n=1; $n>0; $abs=preg_replace($re, '/', $abs, -1, $n)) {}

/* absolute URL is ready! */

return $scheme.'://'.$abs;

}
Tags: ,

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Bir Cevap Yazın