Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/12/2002, 23:35
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 24 años, 9 meses
Puntos: 129
Podrias probar con el código de ejemplo de php.net sobre uso de urldecode():

Código PHP:
$a = explode('&', $QUERY_STRING);
$i = 0;
while (
$i < count($a)) {
   
$b = split('=', $a[$i]);
   echo 
'Value for parameter ', htmlspecialchars(urldecode($b[0])),
        
' is ', htmlspecialchars(urldecode($b[1])), "<br />\n";
   
$i++;
} 
Adaptalo a tus necesidades .. como veras usan htmlspecialchars() y urldecode ...

o mejor usa este:
Código PHP:
function crossUrlDecode($source) {
$decodedStr = '';
$pos = 0;
$len = strlen($source);
while (
$pos < $len) {
$charAt = substr ($source, $pos, 1);
if (
$charAt == 'Ã') {
$char2 = substr($source, $pos, 2);
$decodedStr .= htmlentities(utf8_decode($char2),ENT_QUOTES,'ISO-8859-1');
$pos += 2;
}
elseif(
ord($charAt) > 127) {
$decodedStr .= "&#".ord($charAt).";";
$pos++;
}
elseif(
$charAt == '%') {
$pos++;
$hex2 = substr($source, $pos, 2);
$dechex = chr(hexdec($hex2));
if(
$dechex == 'Ã') {
$pos += 2;
if(
substr($source, $pos, 1) == '%') {
$pos++;
$char2a = chr(hexdec(substr($source, $pos, 2)));
$decodedStr .= htmlentities(utf8_decode($dechex . $char2a),ENT_QUOTES,'ISO-8859-1');
}
else {
$decodedStr .= htmlentities(utf8_decode($dechex));
}
}
else {
$decodedStr .= $dechex;
}
$pos += 2;
}
else {
$decodedStr .= $charAt;
$pos++;
}
}
return 
$decodedStr;
} 
mas info y creditos del código en los "user coments" de PHP.net funcion urldecode():
http://us.php.net/manual/en/function.urldecode.php

Un saludo,

Última edición por Cluster; 27/12/2002 a las 23:38