Insomma, hai bisogno di processare solo le href?
Allora perchè non scriverti una funzione tipo questa, che aggiunge parametri ad una stringa contenente una url da href?
Codice PHP:
function addquerypar(&$variable, $name, $value)
{
// /(&|\?)([a-zA-Z0-9_%]+?)=([a-zA-Z0-9_%]+?)/
if (!isset($variable)):
$variable="";
endif;
if (is_array($name)):
$nameindexes=array_keys($name);
if (is_array($value)):
$valueindexes=array_keys($value);
if (sizeof($name)==sizeof($value)):
for ($index1=0; $index1<sizeof($name); $index1++):
$names[$index1]=$name[$nameindexes[$index1]];
$values[$index1]=$value[$valueindexes[$index1]];
endfor;
else:
if (sizeof($name)<sizeof($value)):
for ($index1=0; $index1<sizeof($name); $index1++):
$names[$index1]=$name[$nameindexes[$index1]];
$values[$index1]=$value[$name[$nameindexes[$index1]]];
endfor;
else:
$names[0]=$name[$nameindexes[0]];
$values[0]=$value[$valueindexes[0]];
endif;
endif;
else:
$names[0]=$name[$nameindexes[0]];
$values[0]=$value;
endif;
else:
$names[0]=$name;
if (is_array($value)):
$valueindexes=array_keys($value);
$values[0]=$value[$valueindexes[0]];
else:
$values[0]=$value;
endif;
endif;
for ($index1=0; $index1<sizeof($names); $index1++):
if (strpos($variable,"?")===false):
$variable.="?";
else:
$variable.="&amp;";
endif;
$variable.=$names[$index1]."=".urlencode($values[$index1]);
endfor;
return $variable;
}
Si usa così:
$url="prova.php";
addquerypar($url,"id",23); //produce "prova.php?id=23"
addquerypar($url,"pro",""genoveffa"); //produce "prova.php?id=23&amp;pro=&quot;genovef fa"
Ciao!