Foros del Web » Programando para Internet » PHP »

Decodificar y codificar URL

Estas en el tema de Decodificar y codificar URL en el foro de PHP en Foros del Web. Buenas, Sabéis como puedo decodificar y codificar URL a través de un script en PHP? De esta URL midominio.com/ajax.php?block_id=page_competition_1_block_competi tion_matches_summary_6&block_name=block_competitio n_matches_summary&callback_params={"page": "0", "round_id": "9171", "outgroup": ...
  #1 (permalink)  
Antiguo 08/07/2010, 15:17
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Decodificar y codificar URL

Buenas,

Sabéis como puedo decodificar y codificar URL a través de un script en PHP?

De esta URL

midominio.com/ajax.php?block_id=page_competition_1_block_competi tion_matches_summary_6&block_name=block_competitio n_matches_summary&callback_params={"page": "0", "round_id": "9171", "outgroup": "", "view": "1"}&action=changePage&params={"page": 2}

Debo codificar estas dos partes
{"page": "0", "round_id": "9171", "outgroup": "", "view": "1"}

y
{"page": 2}

He visto varias webs que lo hacen como esta
http://meyerweb.com/eric/tools/dencoder/

¿Pero cómo lo hacen?

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 08/07/2010, 18:22
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Decodificar y codificar URL

esas partes están es JSON: json_decode
  #3 (permalink)  
Antiguo 08/07/2010, 19:17
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Decodificar y codificar URL

En php hay esto (no se si te sirve)

urldecode() Decodifica una cadena cifrada como URL
urlencode() Codifica como URL una cadena

...y algo mas
rawurlencode() Codificar estilo URL de acuerdo al RFC 1738
rawurldecode() Decodificar cadenas codificadas estilo URL
  #4 (permalink)  
Antiguo 09/07/2010, 00:03
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: Decodificar y codificar URL

Cita:
Iniciado por wiwi74 Ver Mensaje
En php hay esto (no se si te sirve)

urldecode() Decodifica una cadena cifrada como URL
urlencode() Codifica como URL una cadena

...y algo mas
rawurlencode() Codificar estilo URL de acuerdo al RFC 1738
rawurldecode() Decodificar cadenas codificadas estilo URL
Probé con urlencode()

Pero esto {"page": 2} me lo transforma en
%7B%22page%22%3A+2%7D

Cuando debería ser
%22%3A%202%7D

Y con el rawurlencode() también sale diferente
%7B%22page%22%3A%202%7D

¿Sabéis por qué? podría pensar que la URL de partida podría estar codificada de una manera especial, pero no cuadra, porque si pongo
%22%3A%202%7D en un decodificador online me lo descodifica bien, por lo tanto la codificación debe ser estándard...

¿Alguna sugerencia?

Muchas gracias!
  #5 (permalink)  
Antiguo 09/07/2010, 14:21
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Decodificar y codificar URL

En la pagina que posteaste, la codifica asi


{"page": 2}

%7B%22page%22%3A%202%7D

Y al decodificar:

{"page": 2}
  #6 (permalink)  
Antiguo 10/07/2010, 02:27
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: Decodificar y codificar URL

Encontré el fallo, al parecer le agrega mas caracteres de los necesarios en la codificación, al menos la página no los acepta, pero ya vi donde cortar.

Os explico, "ahora" es muy facil de ver :P

Lo transformaba así
%7B%22page%22%3A+2%7D

Cuando debería ser
%22%3A%202%7D

Sobraba lo que hay al principio de page
%7B%22page
%22%3A+2%7D

Con esta codificación funciona la url, así que perfecto, lo único que tengo que hacer es codificar las variables JSON y luego quitarle el texto que hay delante.

De esta manera conseguí que funcionara.

Muchas gracias a todos

Etiquetas: codificar, url
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:17.