[regexp] подмена ссылок в документе

AlterEgo

Guest
[regexp] подмена ссылок в документе

ситуация такая: страница состоит из модулей, и каждый принимает get-переменные. При этом нужно, чтобы параметры запроса передавались от одной страницы к другой (подобие механизма trans_sid). Сейчас мой скрипт просто запоминает в сессии, какую статью и новость нужно показывать, но это не совсем удобно.

В общем, нужно заменить все ссылки, не содержащие "://" (т.е. локальные) на аналогичные с текущими параметрами запроса.
Пример
текущая страница: index.php?news=2
ссылки до замены: index.php?article=1, index.php?article=1&news=1
ссылки после замены: index.php?news=2&article=1 index.php?article=1&news=1 (соответственно)
 

AlterEgo

Guest
желательно все сделать в одном preg_replace (надеюсь, это возможно)
плизз, подкиньте идейку
 

fixxxer

К.О.
Партнер клуба
PHP:
function MakeLink($a)
{
  $link = $_SERVER['PHP_SELF'];
  foreach ($a as $k=>$v)
    $link .= (strlen($link)?"&":"?") . $k . "=" . urlencode($v);
  return $link;
}

//------------------------

echo "<a href=\"" . MakeLink(array("article"=>$article,"news"=>$news)) . "\">this is the link</a>";
может так?
 

Altex

Новичок
Ты бы всю задачу сказал целиком, уверен что можно сделать проще, то что у тебя - это результат неправильного планирования.
 

AlterEgo

Guest
черт, я даже не знаю как объяснить...
ну например зашел ты на сайт, перешел по ссылке на статью в меню слева. Затем ты обратил внимание на новости справа, кликнул "Подробнее", чтобы прочесть новость до конца. После этого страница полностью перезагружается и ты опять увидишь главную страницу вместо статьи.
:(

метод выше не подходит - я материалы держу в xml, и как туда пхп-код эмбеддить я не знаю (пробовал, но не получилось; тем более у меня expat, а не libxml)
 

Altex

Новичок
Может ещё одну попытку сделаешь объяснить так, чтобы понятно было не только тебе?
 
Сверху