Автор Тема: преобразование абсолютных ссылок в относительные  (Прочитано 5535 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Орлис

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 37
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.orlis.ru/
При разработке в движка сайта возникла типичная прикладная задача:
1) на странице существуют абсолютные гиперссылки (например "/catalog/yarn/1036"),
2) есть переменная $url (например "/catalog/yarn"), которая содержит абсолютный адрес текущей страницы
3) нужно преобразовать гиперссылки их относительные ("../yarn/1036").
Сложность в том, что глубина вложенности ссылок \'../\' может быть от 0 (на корневой странице) до произвольной (например, перекрестные ссылки товаров из разных каталогов).

Разумно использовать для регулярные выражения, посоветуйте с чего начать.

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Цитировать
Орлис:
Разумно использовать для регулярные выражения

не факт. имхо циклом заменять, разбив урл в массив
ну, будем исповедоваться?

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Орлис
не надо путать, абсолютная ссылка:
http://forums.webscript.ru/some_long_path/showthread.php
относительная:
/some_long_path/showthread.php

Относительные ссылки так и назваются, потому что выбирается место, ОТНОСИТЕЛЬНО которого будут писаться ссылки.
А теперь внятно и понятно распиши, какая стоит задача, потому что из того, что написано совсем непонятно, что надо сделать и по какому правилу!
работа в Украине

Оффлайн Орлис

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 37
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.orlis.ru/
Относительная ссылка относительна относительно адреса страницы, на которой находится относительная ссылка, а не от корня сайта. :)

Дано:
$page = адрес текущей страницы от корня сайта ("/catalog/yarn")
$href = адрес ссылки, относительно корня сайта ("/","/catalog/yarn/1036","/files/catalog/yarn.xls")

Нужно преобразовать $href в вид ("../..","yarn/1036","../../files/catalog/yarn.xls")

Это необходимо для того, чтобы удобно хранить идентификатор сессии в виде виртуального каталога www.company.com/56782347/catalog/yarn/1036
« Последнее редактирование: 19 Апреля 2004, 16:24:19 от Орлис »

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Цитировать
Орлис:
Относительная ссылка относительна относительно адреса страницы, на которой находится относительная ссылка, а не от корня сайта.

ну конечно я понимаю, что у тебя они относительно твоей страницы... не вопрос! да вот только исходная ссылка, как по мне, у тебя тоже не абсолютная...
а теперь по полочкам... может, я вообще съехал с ума, но я не понимаю, что ты пытаешься сделать :(
У тебя есть адрес страницы относительно корня сайта:
http://www.company.com/catalog/yarn/
тебе надо на этой странице разместить ссылку на
http://www.company.com/catalog/yarn/1036/
я не понимаю, причем виртуальный каталог к сессиям и к относительным данной страницы ссылкам?

[OFF]я уже решился перенести эту тему, но еще не решился куда, если ты изобретаешь велосипед, то поедем во флейм, если ты изобретаешь новый вид работы с сессиями, то тогда поедем к Ромику в РНР, а если вдруг тебе поможет mod_rewrite, я пока не могу это определить, то поедем в вебсервера.[/OFF]
работа в Украине

Оффлайн Орлис

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 37
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.orlis.ru/
хочу преобразовать строки вида "/catalog/yarn/1036" в, например,  "../../catalog/yarn/1036", по определенным правилам

и изобретаю для этого регулярное выражение :D

сессии, mod_rewrite и флейм к этому имеют косвенное выражение

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Орлис
ага, начинаем разбираться... т.е. есть какое-то правило, согласно которого у тебя перед адресом добавляется какое-то количество ../
Правильно?
работа в Украине

Оффлайн Орлис

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 37
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.orlis.ru/
Правильно. Только правило нужно еще придумать! :)

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Цитировать
Орлис:
Правильно. Только правило нужно еще придумать

1. придумай правило,
2. почитай: [p]str_repeat[/p]

и поехали в PHP
работа в Украине

Оффлайн Орлис

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 37
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.orlis.ru/
если придумать правило, то реализовать его будет тривиально :D

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28