Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/06/2014, 09:15
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Problemas con la letra Ñ

Es una funcion anonima, por eso no lleva nombre, se usa como metodo de evaluacion y lleva 2 parametros porque uasort la llama con dos parametros.

¿Podrias leer el manual por favor? Alli esta muy bien explicado ambos temas.

En javascript le puedes pasar una funcion sin nombre como parametro a otra, es muy probable que lo hallas hecho alguna vez y lo conozcas con el nombre de callback, si usaste JQuery en algun proyecto, sin duda tuviste que recurrir a esta técnica, en php es exactamente el mismo concepto.

Cita:
Así substr(Elefante,0,1) me dará el caracter E pero substr(Ñoco,0,1) no me da el caracter Ñ
¿Como que no? ¿Y que te da? ¿Manzanas?
Código PHP:
Ver original
  1. echo(substr("Ñoco",0,1));
  2.     echo(substr("ñoco",0,1));
  3.     echo(substr("elefante",0,1));
  4.     echo(substr("Elefante",0,1));

Produce como salida ÑñeE por lo cual esta perfecto.

Hasta este código funciona:
Código PHP:
Ver original
  1. $a = "Ñoco";
  2.     $b = "ñoco";
  3.     $c = "elefante";
  4.     $d = "Elefante";
  5.     echo($a[0]);
  6.     echo($b[0]);
  7.     echo($c[0]);
  8.     echo($d[0]);

que a priori podria no funcionar si no esta en ISO-8859-1 ya que la Ñ pertenece al conjunto ascii extendido y por lo tanto se representaria con 2 bytes y no con 1 internamente, sin embargo no falla y funciona bien.

Edito: posiblemente estes codificando el archivo como utf8/utf8 sin bom, si prestas atencion al primer codigo te hice un comentario que decia:
Cita:
// Codificado en ansi.
asi que debes codificar tu archivo en ese formato.

Edito2: si necesitas codificar en utf8 si o si, podrias revisar la seccion de iconv del manual, y mirar estos dos ejemplos:

Código PHP:
Ver original
  1. // Codificado en ansi:
  2.     $ansi = "Ñoco";
  3.     echo(substr($ansi,0,1)); // Ñ
  4.    
  5.     // Codificado en UTF-8    
  6.     $utf8 = "Ñoco";
  7.     echo(iconv_substr($utf8, 0, 1, "UTF-8")); // Ñ
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Última edición por NSD; 18/06/2014 a las 09:35