GeT
Новичок
Сохранение GET-данных+возможное их модифицирование
Вот, появилась необходимость сделать подобную вещь:
пользователь вводит вот такой адрес, например
"script.php?a=1&b=2&c=3" (1)
Внутри script.php мне нужно некоторые ссылки, чтобы в них тоже указывались эти параметры (а кое-где у этих параметров заменить значения).
Скажем, ссылка (1) в результате должна превратиться в "script2.php?a=1&c=4&e=4" (2)
Вручную чаще всего прописывать все ссылки неудобно, поэтому я сделал вот такую функцию:
Тогда внутри скрипта скрипта script.php чтобы получить (2) надо вызвать функцию вот таким образом:
Вопрос. Насколько разумно применение такой функции?
P.S. $_SESSION не предлагать
Вот, появилась необходимость сделать подобную вещь:
пользователь вводит вот такой адрес, например
"script.php?a=1&b=2&c=3" (1)
Внутри script.php мне нужно некоторые ссылки, чтобы в них тоже указывались эти параметры (а кое-где у этих параметров заменить значения).
Скажем, ссылка (1) в результате должна превратиться в "script2.php?a=1&c=4&e=4" (2)
Вручную чаще всего прописывать все ссылки неудобно, поэтому я сделал вот такую функцию:
PHP:
function modify_link($script,$up_vars) {
global $allowed_links;
if (!array_key_exists($script,$allowed_links))
return $script;
$link = $script;
$vars = array();
if ($_GET)
foreach ($_GET as $c_var=>$c_val) {
if (in_array($c_var,$allowed_links[$script])) {
if (array_key_exists($c_var,$up_vars)) {
if ($up_vars[$c_var] !== 0) $vars[]=$c_var."=".$up_vars[$c_var];
}
else $vars[]=$c_var."=".$c_val;
}
}
if ($vars) {
$link.="?".implode("&",$vars);
$sep = "&";
}
else $sep="?";
$t_vars = array();
if ($up_vars)
foreach ($up_vars as $v_name=>$v_val)
if ($v_val !== 0) $t_vars[] = $v_name."=".$v_val;
if ($t_vars) $link .= $sep.implode("&",$t_vars);
return $link;
}
Тогда внутри скрипта скрипта script.php чтобы получить (2) надо вызвать функцию вот таким образом:
PHP:
$new_link = modify_link("script2.php",array("b"=>0, "c"=>4, "e"=>4)
P.S. $_SESSION не предлагать