небольшой спец. вопрос по работе с урлами.

power

Guest
небольшой спец. вопрос по работе с урлами.

Коллеги, небольшой спец. вопрос по работе с урлами.

Вопрос один можно ли это сделать проще?
Вычислить и правильно определить урл.
Что бы сделать полноценную ссылку.

Пример:

$url = “http://www.site.ru/dir/fff.htm”;

как вычислить - $ ggg = “http://www.site.ru/”
как вычислить - $ ggg2 = “http://www.site.ru/dir/”


$link = “pages1.htm”;
$link = $ ggg2 + $link;
$link = “http://www.site.ru/dir/pages1.htm”

$link1 = “/pages1.htm”;
$url = strpos ($ggg2 ,0,-1);
$link1 = $url + $link;
$link1 == “http://www.site.ru/dir/pages1.htm”


$link2 = “/dirXXX/pages1.htm”; (как вычислить что это path)
$link2 = $ ggg + $link2;
$link2 === “http://www.site.ru/dirXXX/pages1.htm”


$link3 = “dirXXX/pages1.htm”; (как вычислить что это path)
$link3 = $ ggg + $link2;
$link3 === “http://www.site.ru/dirXXX/pages1.htm”

Задача конечно сложная, я её неделю буксую.
 

power

Guest
Прдположим

$url = “http://localhost/dir/fff.htm”;

Это страница на которой много ссылок, но они резанные.

К примеру вот таких:

$link = “pages1.htm”;
$link1 = “/pages1.htm”;
$link2 = “/dirXXX/pages1.htm”;
$link3 = “dirXXX/pages1.htm”;

Мне нужно что бы каждая ссылка была распознана $link1 == $link1;

И к ней имея только параметр $url была правильно прибавленн домин и путь.

Т.е. получилось следующее:


$link = “http://www.site.ru/dir/pages1.htm”
$link1 == “http://www.site.ru/dir/pages1.htm”
$link2 === “http://www.site.ru/dirXXX/pages1.htm”
$link3 === “http://www.site.ru/dirXXX/pages1.htm”

Здесь задача из резанной ссылки сделать полную.
 

power

Guest
Crazy

Там нет "BASE HREF" , а можно вычислить BASE и путь из $url
 

power

Guest
Поисковик собственный, на основосе типа того искусственного интелекта ;)
 

power

Guest
Так что, кроме всяких str-гов, нельзя не как найти параметр.
 

OpenMind

Guest
Если лень писать сложные регекспы, можешь сделать так
PHP:
<?
function MakeURL($url,$link)
 {
  return preg_replace("/".basename($url)."/","",$url).
         preg_replace("/^\//","",$link);
 }


 $url = 'http://localhost/dir/fff.htm';
 $links[] = 'pages1.htm';
 $links[] = '/pages1.htm';
 $links[] = '/dirXXX/pages1.htm';
 $links[] = 'dirXXX/pages1.htm';

 foreach ($links as $link) echo MakeURL($url,$link).'<br />'
?>
 

power

Guest
Кстати вот с basename($url), я вот ногу подвернул, он иногда вставляет :

$url = 'http://www.mysite.ru/dir/fff.htm';

$links = 'http://localhost/dirXXX/pages1.htm';

OpenMind

Сенькю и благод. за идею
 

power

Guest
Хотя там одна вещь мешала может из-за неё такой прикол сделал
 

Кром

Новичок
Эти вопросы подробно и с примерами освещены здесь: [m]parse_url[/m]
 
Сверху