All pastes #469362 Raw Edit

thanks nirrti 3

public text v1 · immutable
·published 2007-05-03 18:26 UTC
rendered paste body
<?php
function resolverelatives($arr) {
  $new = array();
  foreach ($arr as $path) {
    if ($path === '.') continue;
    if ($path === '..' and count($new)) {array_pop($new); continue;}
    $new[] = $path;
  }
  return $new;
}
function mappath($from, $to, $sep = DIRECTORY_SEPARATOR) {
  $arrfrom = explode($sep, $from);
  $arrto = explode($sep, $to);
  if (!strlen($arrto[0]) and strlen($arrfrom[0])) return $to;
  elseif (strlen($arrto[0]) and !strlen($arrfrom[0])) {
    user_error(__FUNCTION__.' Can\'t map path from absolute to relative path.');
    return false;
  }
  while (count($arrfrom) and count($arrto) and $arrfrom[0] === $arrto[0]) {array_shift($arrfrom); array_shift($arrto);}
  $uplen = count($arrfrom)-1;
  $newpath = array();
  for ($i = 0; $i < $uplen; $i++) $newpath[] = '..';
  foreach ($arrto as $aaaah) $newpath[] = $aaaah;
  return implode($sep, $newpath);
}


echo '<img src="'.mappath($_SERVER['PHP_SELF'], '/images/test.jpg').'" />';
?>