Foros del Web » Programando para Internet » PHP »

mal visualización de emoticones en post de salida PHP

Estas en el tema de mal visualización de emoticones en post de salida PHP en el foro de PHP en Foros del Web. Hola gente yo de nuevo por aca me surgio un nuevo problema (los colaboradores y moderadores "IsaBelM" y "pateketrueke"), me han dado un empujon con ...
  #1 (permalink)  
Antiguo 23/12/2011, 22:37
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 3 meses
Puntos: 5
Pregunta mal visualización de emoticones en post de salida PHP

Hola gente yo de nuevo por aca me surgio un nuevo problema (los colaboradores y moderadores "IsaBelM" y "pateketrueke"), me han dado un empujon con ejemplos que podrian solucionar mi problema(y la verdad pude hacer lo que yo tenia pensado), pero en fin aca estoy de nuevo (y si me contesta pateketrueke me vendria de pelos

Bueno al grano: Resulta que he implementado un sistema de frases con emoticones y mysql; en la cual el visitante pincha sobre dicho emoticon y este es insertado en el formulario (textarea); al guardar los datos enviados junto con el texto, los emoticones se guardan en forma de texto tambien. Ahora cuando el visitante hace la consulta de la frase creada recientemente este no se visualiza el emoticon al lado de la frase, sino que se posa abajo; EJEMPLO:

Código:
usuario ingresa:
****
Que calor que hace acá :(
Código:
usuario recibe la consulta y se muestra:
****
Que calor que hace acá
:(
Como verán lo puso abajo del texto y no seguido (y si pongo otro emoticon al lado, este se pone debajo del anterior).

Les paso el código php que hace que se muestre el emoticon en la salida.

config_smile.php
Código PHP:
<?php
// creamos la funcion
if(!function_exists('mostrarCaritas')){
function 
mostrarCaritas($valor){
// la variable $caritas
// guardara como valor
// un array con los posibles caracteres ;)
$caritas = array(
                        
//FILA DE EMOTICONES
"8)",
":s",
"8(",
":|",
":(",
":)",
":D",
"xH",
"CaKe",
"PhO",
"Kiss",
"8>",
">:@",
":O",
":p",
";)",
"d=",
"q=",
"Party",
"|X|",
"Note",
"Sospe",
"Drak",
"Ice",
":@",
"&>",
                            );                
// $imagenes, tambien contendra un array
// con las imagenes que usaremos
$imagenes = array(
                         
//FILA DE EMOTICONES
"<img src='emoticons/e1.gif' height='19'>",
"<img src='emoticons/e2.gif' height='19'>",
"<img src='emoticons/e3.gif' height='19'>",
"<img src='emoticons/e4.gif' height='19'>",
"<img src='emoticons/e5.gif' height='19'>",
"<img src='emoticons/e6.gif' height='19'>",
"<img src='emoticons/e7.gif' height='19'>",
"<img src='emoticons/e16.gif' height='19'>",
"<img src='emoticons/e17.gif' height='19'>",
"<img src='emoticons/e18.gif' height='19'>",
"<img src='emoticons/e19.gif' height='19'>",
"<img src='emoticons/e23.gif' height='19'>",
"<img src='emoticons/e26.gif' height='19'>",
"<img src='emoticons/e8.gif' height='19'>",
"<img src='emoticons/e9.gif' height='19'>",
"<img src='emoticons/e10.gif' height='19'>",
"<img src='emoticons/e11.gif' height='19'>",
"<img src='emoticons/e12.gif' height='19'>",
"<img src='emoticons/e13.gif' height='19'>",
"<img src='emoticons/e14.gif' height='19'>",
"<img src='emoticons/e15.gif' height='19'>",
"<img src='emoticons/e20.gif' height='19'>",
"<img src='emoticons/e21.gif' height='19'>",
"<img src='emoticons/e22.gif' height='19'>",
"<img src='emoticons/e24.gif' height='19'>",
"<img src='emoticons/e25.gif' height='19'>",
                  
                );
// hacemos el reemplazo
            
return (str_replace($caritas$imagenes$valor));
            }
    }
// habilitamos el bufer de salida
    
ob_start("mostrarCaritas");
?>
__________________
Y Sócrates dijo...Solo sé que no sé nada.
Entiende la filosofía como una búsqueda colectiva basada en el diálogo.
  #2 (permalink)  
Antiguo 24/12/2011, 12:16
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: mal visualización de emoticones en post de salida PHP

hay algún salto de línea por ahí, habría que ver el código en donde mostrás los datos para ver si es ahí en donde se produce el salto de línea, o en la consulta en donde se guardan los datos
__________________
la la la
  #3 (permalink)  
Antiguo 24/12/2011, 12:20
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 3 meses
Puntos: 5
Pregunta Respuesta: mal visualización de emoticones en post de salida PHP

Cita:
Iniciado por truman_truman Ver Mensaje
hay algún salto de línea por ahí, habría que ver el código en donde mostrás los datos para ver si es ahí en donde se produce el salto de línea, o en la consulta en donde se guardan los datos
Sisi hay un par de funciones con "nl2br" para hacer el salto de linea (pero eso es cuando el usuario presiona ENTER para hacer el salto de linea; pero en este caso no se ha presionado el ENTER.

He chequeado las funciones y variables, pero cuando en el textarea solo se colocan texto, el resultado sale tal cual se lo ha ingresado.

EJEMPLO
Código:
"Que calor que hace acá; porque es verano jeje"
O con salto de linea: "con función nl2br();"
Código:
"Pablito clavo un clavito;
que clavito clavo pablito?"
Ahora si en el textarea se ingresa texto y emoticones:
Código:
"Que calor que hace acá; porque hace calor :ojotes: [emoticon]
el resultado que me devuelve es este:
Código:
"Que calor que hace acá; porque hace calor 
:ojotes: [emoticon]
No creo que sea problema de la función nl2br ya que si se ingresa solo texto (sea todo seguido o con salto de linea), este devuelve el resultado tal cual se lo escribió. La cosa es cuando se pone un emoticon, ese es el asunto, ¿por que hace eso?
__________________
Y Sócrates dijo...Solo sé que no sé nada.
Entiende la filosofía como una búsqueda colectiva basada en el diálogo.

Última edición por alette666; 24/12/2011 a las 18:59

Etiquetas: smiles, smile_php, arrays
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 14:21.