Hola,
mira, yo tengo el siguiente código en una clase mia, para poder armar url amigables a partir de una url de este estilo:
index.php?controlador=usuarios&accion=update&nombr e=pepe&apellido=pepa
me la convierte en:
usuario/update/nombre/pepe/apellido/papa
el codigo es el siguiente:
Código PHP:
Ver original/**
* setea los parametros de la url
* @version 0.1
* @author Lucas M. sastre
* @access private
* @name setParametros
*
* Modificaciones
*/
private function setParametros($param) {
//limpio los parametros previos
$this->parametros = '';
//extraigo los parametros de la url general
$valores = explode('index.php?',$param); //separo los paremtros ya sea por & o por &
$amp = explode('&',$valores[1]); $valores = $amp;
}
else{
$valores = explode('&',$valores[1]); }
//recorro los valores y voy armando la url
foreach ($valores as $key => $val) {
//valido si el primer segmento es el del lenguaje
if($segmento[0]!='leng') {
//valido si el paremetro es el controlador
if($key=='controlador') {
}
//valido si segmento es el de la paginacion
elseif($segmento[0]=='verPagina'){
$this->parametros .= 'Pagina/'.$segmento[1]."/";
}
//valido que el segmento sea distinto a id
elseif($key!='id') {
$acentos=array("á","é","í","ó","ú","ñ","Á","É","Í","Ó","Ú","Ñ"); $sinacentos=array("a","e","i","o","u","n","A","E","I","O","U","N"); $this->parametros .= preg_replace("@[^A-Za-z0-9-]+@i","-",$value)."/"; }
}
}
}
esto sirve en mi caso, pero para el tuyo, tal vez lo que tengas que hacer es obtener todo el query string que hay despues de la acción y armar un arreglo con eso identificando parametro y valor.
Puedes ver sino como lo hace codeigniter el tema de los segmentos de parametros.
Espero haberme explicado bien y que te sirva de algo.