Foros del Web » Programando para Internet » PHP »

utf8_encode para array

Estas en el tema de utf8_encode para array en el foro de PHP en Foros del Web. Pues eso, como dar salida del array con utf8_encode(). En la DB guardo la info con utf8_decode() y para mostrarlos en el browser necesito pasarlos ...
  #1 (permalink)  
Antiguo 16/06/2011, 14:29
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
utf8_encode para array

Pues eso, como dar salida del array con utf8_encode().

En la DB guardo la info con utf8_decode() y para mostrarlos en el browser necesito pasarlos por el utf8_encode().

Lo he probado de varias formas y me sale un Warning.

A ver si me podéis dar un idea .

Saludos,

Código PHP:
        $result mysql_query($stmt);
        if (
mysql_num_rows($result) > 0) {    
            while (
$row mysql_fetch_array($result)) {
                
$view[] = $row;
            };
            return(
$view);    
        } else {
            return(
false);
        }; 
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #2 (permalink)  
Antiguo 16/06/2011, 14:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: utf8_encode para array

¿Cual warning?

Si pretendes que adivinemos el mensaje de error pierdes tu tiempo, deberías ser mas atento.

Por cierto, las funciones que mencionas solo trabajan con strings, de modo que con arrays no sirve del mismo modo.

Para eso podrías usar array_map(), consulta el manual:
http://php.net/array_map
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 16/06/2011, 14:57
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: utf8_encode para array

en el momento de mostrar los resultados le ponés utf8_encode() y listo, no veo la complicacion,

se lo pones a cada elemento del array
__________________
la la la
  #4 (permalink)  
Antiguo 16/06/2011, 15:36
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: utf8_encode para array

Cita:
Iniciado por truman_truman Ver Mensaje
en el momento de mostrar los resultados le ponés utf8_encode() y listo, no veo la complicacion,

se lo pones a cada elemento del array
Bueno lo preguntaba por si había alguna forma de ponerlo en el while. El tema es que ese while pertenece a una clase, y el return pasa directamente a un loop de Smarty.
No he probado a sacar los valores del array y pasarlos por la función decode, de ahí mi pregunta, por si había alguna forma de hacerlo con menos code.

Gracias,

Cita:
Iniciado por pateketrueke Ver Mensaje
...Si pretendes que adivinemos el mensaje de error pierdes tu tiempo, deberías ser mas atento.
La verdad que no, que no es mi intención que adivinen nada, por eso no he preguntado por el error, lo he puesto solo como nota.

Cita:
Iniciado por pateketrueke Ver Mensaje
Por cierto, las funciones que mencionas solo trabajan con strings, de modo que con arrays no sirve del mismo modo...
Esto si me deja claro el por que no salía de ninguna de las formas. Gracias.
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #5 (permalink)  
Antiguo 16/06/2011, 15:56
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: utf8_encode para array

Que tal Uncontroled_Duck,

Has leído la documentación de la función que te sugirió pateketrueke ?, te debería servir, algo asi:
Código PHP:
Ver original
  1. ...
  2. $result = mysql_query($stmt);
  3. if (mysql_num_rows($result) > 0) {
  4.     while (($view[] = array_map('utf8_encode', mysql_fetch_array($result)))
  5.         || array_pop($view));
  6.     return $view;
  7. }
  8. return false;
  9. ...

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 16/06/2011, 16:32
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: utf8_encode para array

Hola masterpuppet, más o menos es así lo que ando buscando, lo he probado de varias formas, siguiendo el ejemplo que me has puesto, y los ejemplos de la web de php por el enlace de pateketrueke pero no termina de funcionar.

Al poner el while con array_map me sale este error:
Código:
 
Fatal error: Allowed memory size of 33554432 bytes exhausted 
(tried to allocate 50 bytes) in ... bla bla bla...
Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #7 (permalink)  
Antiguo 16/06/2011, 16:39
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: utf8_encode para array

Y de cuantos registros estamos hablando que te sale ese mensaje ?, que cantidad de data estas manejando ?, trata de duplicar el memory_limit, del valor actual(32MB) a 64 en tu php.ini o a traves de ini_set
__________________
http://es.phptherightway.com/
thats us riders :)
  #8 (permalink)  
Antiguo 16/06/2011, 16:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: utf8_encode para array

Uncontroled_Duck, yo me refería inicialmente a que decías que salía un watning, y bueno, ¿te parece útil solo mencionarlo pero no indicar el mensaje de error completo?

Me parece bastante útil dicha información, ya que decir "obtengo un warning" en realidad no nos indica nada, y menos podemos interpretar la gravedad del problema con solo leer código.

Recuerda que somo humanos, no máquinas.


Bueno... volviendo a tu error, ¿podrías mostrar tu código actual?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 16/06/2011, 16:52
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: utf8_encode para array

Cita:
Iniciado por masterpuppet Ver Mensaje
Y de cuantos registros estamos hablando que te sale ese mensaje ?, que cantidad de data estas manejando ?, trata de duplicar el memory_limit, del valor actual(32MB) a 64 en tu php.ini o a traves de ini_set
Lo extraño es que es una tabla de pruebas, tiene solo 32 registros y pesa 16KB.

Si prueba de esta forma:
Código PHP:
while (($view[] = array_map("utf8_encode"mysql_fetch_array($result))) 
|| 
array_pop($view));
return(
$view); 
Sale el error : Warning: array_map() [function.array-map]: Argument #2 should be an array in...

Y si prueba de esta forma:
Código PHP:
$row mysql_fetch_array($result);
while ((
$view[] = array_map("utf8_encode"$row)) 
|| 
array_pop($view));
return(
$view); 
Sale el error que comentaba antes.
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #10 (permalink)  
Antiguo 16/06/2011, 17:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: utf8_encode para array

Yo creo que el código es demasiado confuso para un novato, de ahí que no funcione.

Deberías hacerlo así:
Código PHP:
        $result mysql_query($stmt);
        if (
mysql_num_rows($result) > 0) {    
            while (
$row mysql_fetch_array($result)) {
                
$view[] = array_map('utf8_encode'$row);
            };
            return(
$view);    
        } else {
            return(
false);
        }; 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 16/06/2011, 17:09
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: utf8_encode para array

Cita:
Iniciado por pateketrueke Ver Mensaje
Yo creo que el código es demasiado confuso para un novato, de ahí que no funcione...
Pues ya funciona, a veces queremos hacer las cosas complejas con algo tan sencillo.

Muchas gracias por vuestro tiempo, me ha servido de gran ayuda y además he aprendido algo nuevo.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight

Etiquetas: Ninguno
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 07:59.