rotoZOOM
ACM maniac
Получилась у меня такая вот функция, для замены/добавления GET параметра, вне зависимости от того используется ЧПУ или нет. Функция не самая быстрая, но я думаю замена параметров не будет происходить 1000 раз в одном скрипте.
*****, я понимаю, что ты не используешь конкретно в своей работе ЧПУ, но так как такая тема поднялась, чтобы не плодить топики решил выложить функцию тут.
Массив $rep - массив замен спец. символов для регулярки.
(скорее это уже для экзотики).
*****, я понимаю, что ты не используешь конкретно в своей работе ЧПУ, но так как такая тема поднялась, чтобы не плодить топики решил выложить функцию тут.
Массив $rep - массив замен спец. символов для регулярки.
(скорее это уже для экзотики).
PHP:
function urlEditParam ($par)
{
$s=$_SERVER['REQUEST_URI'];
$rep=array ("\\" => "\\\\",
"." => "\\.",
"*" => "\\*",
"+" => "\\+");
$b = strpos($s,"?")!==FALSE;
foreach ($par as $p => $v){
$zam=strtr ($p,$rep);
if (strpos($s,"?$p=")){
$s=preg_replace ("/\?$zam=([^&]+)/i","?$p=$v",$s);
}elseif (strpos($s,"&$p=")){
$s=preg_replace ("/\&$zam=([^&]+)/i","&$p=$v",$s);
}else{
if ($b)$s.="&";
else $s.="?";
$s.="$p=$v";
$b=TRUE;
}
}
return $s;
}