funcion en php para limpiar cadenas de texto en utf8
- julio 17, 2010
- 4 comentarios
- PHP Tags: librerias y funciones, utf8
A continuación indico una simple función que he desarrollado y el uso básico que le estoy dando es para limpiar las cadenas de esto de html, carácteres htmlentities, tabulaciones, espacios en blanco, etc.. para insertar una cadena de texto “limpia” en los metatags y title de la cabecera en el código html.
/**
* Función para limpiar cualquier meta tag o cadena.
* Lo limpia de caracteres htmlentities tipo á, > etc
* Le quita los saltos de linea de html, los <br /> y cualquier carácter de tabulacion o que le añada espacio.
* Adicionalmente se le puede pasar un numero de caracteres que se quiere mostrar, de esta manera el string se corta por ese numero
*
* @param mixed $string
* @param mixed $corte
* @return string
*/
function limpiar_metas($string,$corte = null)
{
$caracters_no_permitidos = array(""","'");
# paso los caracteres entities tipo á $gt;etc a sus respectivos html
$s = html_entity_decode($string,ENT_COMPAT,'UTF-8');
# quito todas las etiquetas html y php
$s = strip_tags($s);
# elimino todos los retorno de carro
$s = str_replace("r", '', $s);
# en todos los espacios en blanco le añado un <br /> para después eliminarlo
$s = preg_replace('/(?<!>)n/', "<br />n", $s);
# elimino la inserción de nuevas lineas
$s = str_replace("n", '', $s);
# elimino tabulaciones y el resto de la cadena
$s = str_replace("t", '', $s);
# elimino caracteres en blanco
$s = preg_replace('/[ ]+/', ' ', $s);
$s = preg_replace('/<!--[^-]*-->/', '', $s);
# vuelvo a hacer el strip para quitar el <br /> que he añadido antes para eliminar las saltos de carro y nuevas lineas
$s = strip_tags($s);
# elimino los caracters como comillas dobles y simples
$s = str_replace($caracters_no_permitidos,"",$s);
if (isset($corte) && (is_numeric($corte)))
{
$s = mb_substr($s,0,$corte, 'UTF-8');
}
return $s;
}
de mi propia cosecha!
Supongo que se podría optimizar más, pero me ha costado hacer una buena función para resolver todos mis problemas que tenia de espacios en blancos, saltos de linea, carácteres htmlentities,etc.. y he tenido que hacer algunas “pirulas”.
Tags de búsquedas:
saltos limpia, limpiar cadena archivo utf-8, php elimnar saltos de linea y enter, php limpiar cadena para rewrite, php preg replace retorno carro, php subir fichero texto se corta, preg_replace quitar texto entre cadenas php, quitar letras php str_replace, quitar tabulacion a un string php, retorno de carro en php y sql
Posts Relacionados:
- Funciones php para codificar textos En programación ya sea php u otro lenguaje es muy útil y aconsejable usar textos codificados para determinadas funcionalidades de seguridad. Php nos ofrece una serie de funciones para encriptar...
- funcion php generar password El siguiente script es una función en php que genera nuevos password aleatoriamente automaticamente basándose en una serie de patrones tales como la longitud y la fuerza, ésta no es...
- Cómo comprobar si existe una función en PHP Se puede probar si existe una función en PHP con la function_exists () función, que devuelve true si la función existe y false si no existe. Esto es muy importante...
- Cadenas en JavaScript. Parte 1 Hace unas semanas que he recibo 2 libros de Javascript que me he comprado en Amazon y estoy empezando poco a poco a leerlos. Intentaré todo lo que pueda ir...
- Problemas codificacion web. Configurar codificación utf8 php, mysql y html Después de muchos años y grandes problemas de codificación con php y mysql, puedo afirmar que tengo, bastante controlado el problema con las codificaciones. Bueno por lo menos identificado. Desgraciadamente...

RSS Feed
Yo utilizo una función similar para generar la descripción en las meta de mi sitio web. Hay maneras mucho menos engorrosas de hacer esto con determinadas funciones propias de php.
Bastana con strip_tags, trim, substr, chop, y srt_replace \n, \r para retornos y saltos.
Igualmente, es interesante como dices refinarla y podrías utilizarla para limpiar cadenas que se guarden en la base de datos. Considerando que la función nl2br ahora utiliza xhtml, agrega el br con la barra. Pero en mi caso no soy amante de xhtml, tengo más fe en html5, o simplemente me tiene sin cuidado utilizar el 4 trans. por ende, si la página procesada está declarada como HTML los br pasarían incompletos por la función.
Gracias por tu comentario.
Es cierto se podría refinar algo más. Lo cierto es que he tenido problemas usando srt_replace() para eliminar los saltos de linea y retornos de carro, no me lo hacía bien, dejándome espacios en blanco que luego la función trim() no era capaz de eliminar. Posiblemente había algo que no estaba haciendo bien, no lo sé, pero al final conseguí hacer esta función que si esta funcionando bien, aunque tenga unas cuantas líneas más.
En ocasines es mejor no complicarse la vida, si funciona esta bien y mas cuando el tiempo apremia.
se ve interesante