|    
			
				07/04/2008, 05:25
			
			
			  | 
  |   |  |  |  Fecha de Ingreso: enero-2008 
						Mensajes: 63
					 Antigüedad: 17 años, 9 meses Puntos: 0 |  | 
  |  Convertir caracteres especiales en formato url  
  Hola!Dado un texto de entrada, debo convertirlo en formato url.  Por lo tanto, en caso de tener caracteres especiales lo debo transformar a % seguido del código ascii en notacion hexadecimal (esto segun:  http://es.kioskea.net/internet/url.php3).
 Para esto me hice la siguiente funcion:
 
 function translate2url_cod($text){
 $output = '';
 $tab_text = str_split($text);
 foreach ($tab_text as $id=>$char){
 $ascci_cod = ord($char);
 if(($ascci_cod>122)
 ||(($ascci_cod >= 0)&&($ascci_cod <= 47))
 ||(($ascci_cod >= 58)&&($ascci_cod <= 64))
 ||(($ascci_cod >= 91)&&($ascci_cod <= 96))
 ){
 $hex = dechex(ord($char));
 $output .= '%' . $hex;
 }else{
 $output .= $char;
 }
 }
 return $output;
 }
 
 El tema pasa porque por ej, si tengo una frase del estilo a:
 á, é, í, ó y ú
 la sentencia $tab_text = str_split($text) en lugar de ubicar cada caracter en una posicion del arreglo, cada vocal acentuada me la traduce en dos códigos.  Por ej, la á:
 char: � - ascci_cod: 195 - hex: c3
 char: � - ascci_cod: 161 - hex: a1
 Cuando en realidad seria en ascii el valor 160, que al traducirse segun url %A0.
 Me podrian ayudar para ver como obtener caracter a caracter en lugar de la funcion str_split?
 
 Muchas gracias!
 Edith
     |