относительный путь

IMW

Guest
относительный путь

Задача: на входе url тира
$url1=mysite.com/form/form0/script.php
$url2=mysite.com/form/htdocs/main/form.html

нужно получить относттельный путь от $url1 к $url2. В данной задаче ответ будет $url3="../htdocs/main/form.html". Как написать универсальный скрипт, что бы вычислял отностельный путь для любых url (ясно что с одного домена). Заранее благодарен!
 

GD

Guest
писать - руками, почитав про pathinfo(), explode() и т.д.
 

IMW

Guest
Intent
нужно получить относттельный путь от $url1 к $url2(мне кажется пример довольно понятен(или нет)).
Да я пробую не получается
 

MD

Guest
как уже сказал GD, читай тут: [m]explode[/m]
потом подумай немного и разбей свои урлы по слешам.
осталось проходя по ним сравнивать и в момент когда елементы полей начнут отличаться, начинай задумываться о том, что пора бы ставить ..
 

IMW

Guest
У меня алгоритм такой сначала найти общую часть потом ее отрезать у обоих, а потом уже считать слешы в $url1 заменить на ../ (их сумму-1) и дописать их $url2(уже обрезанною), но программно не получается :-(
 

MD

Guest
целый алгоритм ... ух. :)
что именно не получается ?
 

GD

Guest
PHP:
$path1 = explode('/', $url1);
$path2 = explode('/', $url2);
array_pop($path1); //при условии что ссылки ведут на файлы!
$target_file = array_pop($path2); //при условии что ссылки ведут на файлы!
while ($path1[0] == $path2[0]) {
array_shift($path1);
array_shift($path2);
}
$relative_path = join('/', array_merge(array_pad(Array(),sizeof($path1),'..'), $path2, $target_file));

echo $relative_path;
 

IMW

Guest
Всем большой СЕНКС(особенно GD) работает супер, осталось еще разобратся :)!!!
 

IMW

Guest
Я уже разобрался так что MD не ругайся, просто сам бы я долговато писал(и кривовато может быть), теперь все по аналогие буду быстро делать
 
Сверху