A veces se almacena en la base de datos texto y para evitar problemas con la codificación del mismo, podemos preferir guardar las palabras con tildes usando el código HTML para cada una.
Aquí se puede ver la equivalencia de todos los códigos HTML.
Para realizar estas conversiones, php nos da dos funciones: htmlentities y html_entity_decode.
HTML | TEXTO |
---|---|
á | a |
é | e |
í | i |
ó | o |
ú | u |
En el ejemplo siguiente, odo carácter convertible a código HTML se convertira, incluyendo gracias a ENT_QUOTES todo tipo de comillas y usandose para ello la codificación UTF-8.
$texto = htmlentities("ejemplo á é í ó ú ñ", ENT_QUOTES, "UTF-8");
Y a la inversa:
$texto = html_entity_decode("ejemplo ñ", ENT_QUOTES, "UTF-8");
Si sólo quieres realizar las conversiones para un pack de caracteres en concreto, como tildes y la ñ (ya sea en mayúsculas o minúsculas), es más conveniente hacerse alguna función propia para ello.
/** * Convierte las tildes de un texto a sus entidades HTML. * * @param string $cadena Cadena a modificar. * @return string Cadena de texto con codigos html. */ public static function TildesHtml($cadena) { return str_replace(array("á","é","í","ó","ú","ñ","Á","É","Í","Ó","Ú","Ñ"), array("á","é","í","ó","ú","ñ", "Á","É","Í","Ó","Ú","Ñ"), $cadena); }
Con str_replace se cambian cadenas por otras o como en el ejemplo, arrays por otros.
34677 visitas.
Excelente, me funciono a la perfección.
gracias
Muchas gracias por hacer este artículo, me has ayudado a resolver mi problema. No solo eso sino también a utilizar la funcion htmlentities, pulgar arriba.
Muy buen aporte, me funciono muy bien; solo para las personas que requieran presentar el codigo html en pantalla le hice el siguiente cambio:
public function TildesHtml($cadena) {
return (str_replace(array(«á»,»é»,»í»,»ó»,»ú»,»ñ»,»Á»,»É»,»Í»,»Ó»,»Ú»,»Ñ»),
array(«&».»aacute;»,»&».»eacute;»,»&».»iacute;»,»&».»oacute;»,»&».»uacute;»,»&».»ntilde;»,
«&».»Aacute;»,»&».»Eacute;»,»&».»Iacute;»,»&».»Oacute;»,»&».»Uacute;»,»&».»Ntilde;»), $cadena));
}
Saludos
No mames, si vas a poner código ponlo para copiar, ahí esta uno como pendejo escribiendo todo.
El código se puede copiar, pero no te has dado cuenta jaja eso si fue una pendejada 😉
si si.. un pendejo.. sino que busque en otro lado
Chinga tu madre puto, jaja.