funcion en php para limpiar cadenas de texto en 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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
* 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”.
Esta entrada está licenciada bajo
CC BY 4.0
por el autor.