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.

/**
    * Función para limpiar cualquier meta tag o cadena.
    * Lo limpia de caracteres htmlentities tipo &aacute, > 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 &aacute; $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:

quitar lineas en blanco txt php,UTF-8,limpiar texto en html,utf-8 php funciones string,php funcion para limpiar string,php limpiar cadena,php limpiar cadena de ataques mysql,php limpiar cadenas,php limpiar texto,php eliminar tabulaciones,php eliminar salto de linea,php eliminar retornos de carro str_replace,php eliminar html,php eliminar comillas en una fila,php eliminar comentarios saltos de linea

Noticias relacionadas »

8 comentarios en funcion en php para limpiar cadenas de texto en utf8

  1. Carlos
    / Responder

    El código tira errores por todos lados, para empezar aca:

    $caracters_no_permitidos = array(“””,”‘”);

    después te elimina las letras “r” de las meta

    no entiendo cual es la idea de publicar códigos con errores y hacerle perder el tiempo a la gente, estaría bueno chequear antes

  2. Shadow
    / Responder

    Vean este problema que me da

    Texto antes de ser procesado por la funcion
    “Hoy me levante y en cuanto vi mis noticias en #facebook #descubri una publicacion que conducia a este documental”

    Texto despues de ser procesado por la funcion
    “Hoy me levae y e cuao vi mis oicias e #facebook #descubi ua publicacio que coducia a ese documeal”

    Como veran le faltan letras a la mayoria de las palabras y revisando el codigo no encuentro ningun error, pero debo agregar que no soy muy bueno con los Regex, por lo que no podria encontrar error de haberlo.

    Alguna ayuda?

    • Carlos
      / Responder

      ¿no encontras el error porque te desaparecen las letras?

      esta bastante claro, por ejemplo aca se van las “n”

      $s = str_replace(“n”, ”, $s);

      El código es una basura sin chequear

  3. luis
    / Responder

    hola buen dia como se hace para que en los textos de formulario deja tu comentario que tienes aparescan los nombres como nombre, Website, email dentro de la caja de texto. gracias

  4. Desconectate
    / Responder

    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.

    • Pedro Ventura
      / Responder

      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.

      • JOMUHU
        / Responder

        En ocasines es mejor no complicarse la vida, si funciona esta bien y mas cuando el tiempo apremia.

  5. silva
    / Responder

    se ve interesante

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Invertir en criptomonedas: »

 

Cómo comprar bitcoin

Invertir y comprar Bitcoin y otras altcoins es más fácil de lo que crees.

1) Si sólo quieres comprar Bitcoin, Ethereum o Litecoin como inversión, tu opción es Coinbase

2) Si quieres probar con otras criptomonedas tu opción es Binance

3) Cualquier duda escríbeme con total libertad al formulario de contacto para resolver dudas: https://www.pedroventura.com/contacto/

¡Comparte este artículo! »

  • A.BTC (4 semanas)
    Canal Serio de Señales para Trading con Criptomonedas Enlace: https://t.me/tradingcriptomonedas
  • Margart (4 semanas)
    La verdad que me ha gustado mucho el post, de…
  • ¡Hablan de nosotros! (2 meses)
    […] 04/02/2018          => Lee el artículo aquí…
  • Emiluz (2 meses)
    Camaradas... tengo documento de word con formulas nativas de word...…
  • Francisco (2 meses)
    Buen dia, agradeceria el envio del archivo. Saludos.
  • yaplog.jp (2 meses)
    I am genuinely glad to glance at this webpage posts…

Suscríbete al newsletter »

Proporciona tu correo electrónico a continuación y recibe las últimas noticias! Funciona con Feedburner de Google

Archivo »

Leer entrada anterior
mensajes de ayuda o tooltip con jquery

Los tooltips o mensajes de ayuda son pequeños esa pequeñas cosas que juegan un gran rol en el diseño y...

Cerrar