Foros del Web » Programando para Internet » PHP »

Función sustituir emoticonos

Estas en el tema de Función sustituir emoticonos en el foro de PHP en Foros del Web. Estoy intentando diseñar una función que dada una cadena de texto me sustituya determinadas partes por imágenes, el objetivo es que cuando un usuario deje ...
  #1 (permalink)  
Antiguo 26/12/2004, 13:03
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Función sustituir emoticonos

Estoy intentando diseñar una función que dada una cadena de texto me sustituya determinadas partes por imágenes, el objetivo es que cuando un usuario deje un mensaje tipo 'Feliz Navidad a todos! :D' El emoticono :D se transforme en una imagen de una carita sonriente.

Empiezo así:
Código:
function sustituye_emoticonos ($mensaje){

$nuevo_mensaje=eregi_replace(":)","<img src=\"smilies/5841.gif\">",$mensaje);
$nuevo_mensaje=eregi_replace(":(","<img src=\"smilies/5840.gif\">",$nuevo_mensaje);
$nuevo_mensaje=eregi_replace(";)","5941.gif",$nuevo_mensaje);

echo $nuevo_mensaje;
}
Pero en la segunda línea ya me devuelve un error:

Warning: eregi_replace() [function.eregi-replace]: REG_EPAREN:aparentheses not balanced in c:\documents and settings\...\tag_board.php on line 60

la función eregi_replace admite hasta 9 sustituciones pero ni idea de cómo se hace... y aún así pretendo que se sustituyan todos los emoticonos que escriba el usuario y no sólo 9...

Por lo visto como tenía pensado no se puede hacer...

Una aclaración: las imágenes se guardan en una carpeta con un nombre determinado: el código ascii correspondiente al emoticon, es decir, si tenemos un emoticon :D cuyo código ascii es 5868 la imagen se llamará 5868.gif

Además para dibujar un emoticon aveces es necesario usar dos caracteres y aveces 3: :D o ^_^

Alguien que me explique un poco cómo se hace?

Saludos y gracias.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #2 (permalink)  
Antiguo 26/12/2004, 13:13
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 14 años, 6 meses
Puntos: 2
No se cual puede ser el error, yo estoy usando str_replace y me funciona bien:
Código PHP:
$replace=str_replace(":)",'<img src="img/f_sonrie.gif" width="16" height="16">',$replace);
$replace=str_replace(";)",'<img src="img/f_guino.gif" width="16" height="16">',$replace);
$replace=str_replace(":]",'<img src="img/f_risa_gigante.gif" width="16" height="16">',$replace);
$replace=str_replace(":(",'<img src="img/f_no_azul.gif" width="15" height="15">',$replace);
$replace=str_replace("o_0",'<img src="img/f_ojon.gif" width="15" height="15">',$replace);
$replace=str_replace(":s",'<img src="img/f_desconsertado.gif" width="15" height="15">',$replace);
$replace=str_replace(":?:",'<img src="img/f_quest.gif" width="15" height="15">',$replace);
$replace=str_replace(":lol:",'<img src="img/f_lol.gif" width="15" height="15">',$replace);
$replace=str_replace(":p",'<img src="img/f_lengua.gif" width="15" height="15">',$replace);
$replace=str_replace(":P",'<img src="img/f_lengua.gif" width="15" height="15">',$replace);
$replace=str_replace(":o",'<img src="img/f_ooo.gif" width="15" height="15">',$replace);
$replace=str_replace(":O",'<img src="img/f_ooo.gif" width="15" height="15">',$replace); 
__________________
I Love Programming...
  #3 (permalink)  
Antiguo 26/12/2004, 13:54
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Gracias FuLaNo_ tu solucion me vale.

Ah! y felices fiestas.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)

Última edición por DjNelson; 26/12/2004 a las 14:01
  #4 (permalink)  
Antiguo 26/12/2004, 14:49
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 14 años, 6 meses
Puntos: 2
Igualmente para ti.
__________________
I Love Programming...
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:58.