informaticaPC

Tutorial de PHP

Limpiar una cadena de código HTML, espacios y otros caracteres especiales, contar palabras...

Limpiar código HTML

Al crea una página web hay ciertos caracteres usados en lenguaje HTML que es posible que no se visualicen correctamente dependiendo del juego de caracteres usado.

Así pues, cuando desde PHP se devuelva código HTML podemos usar htmlspecialchars() y htmlentities() para convertir dichos caracteres a entidades HTML: la diferencia entre ambas funciones es que mientras esta última convertirá todos los caracteres que tengan una entidad HTML equivalente, htmlspecialchars() traducirá sólo los siguientes:

  • & (ampersand) se convierte en &.
  • " (comilla doble) se convierten en " cuando ENT_NOQUOTES no se ha establecido.
  • ' (comilla simple) se convierte en ' sólo cuando ENT_QUOTES se ha establecido.
  • < (menor que) se convierte en &lt;.
  • > (mayor que) se convierte en &gt;.

En ambas funciones, como primer parámetro indicaremos el código HTML a convertir, y como segundo parámetro (opcional):

  • ENT_COMPAT: sólo se traducen las comillas dobles. Si no escribimos nada en el segundo parámetro se tomará por defecto esta opción.
  • ENT_QUOTES: se traducen tanto las comillas simples como las comillas dobles.
  • ENT_NOQUOTES: no se traducen niguna comilla.

A continuación te mostramos un ejemplo con htmlspecialchars():

<?php
    echo htmlspecialchars( "<p>Una de las mejores webs con 'cursos de informática gratis' es \"www.aprender-informatica.com\"</p>" );
?>

Descargar ejemplo

Al ejecutar el código anterior en el navegador web, si vas a la opción de ver el código fuente de la página verás el siguiente código HTML:

Convertir entidades HTML

Y ahora, otro ejemplo con htmlentities():

<?php
    echo htmlentities( "<p>Una de las mejores webs con 'cursos de informática gratis' es \"www.aprender-informatica.com\"</p>" );
?>

Descargar ejemplo

Al visualizar el código fuente de la página veremos:

Convertir entidades HTML

Observa que en este caso se ha convertido también la letra 'á' (con tilde) a su entidad HTML correspondiente.

Otra función que podemos utilizar es strip_tags(), que devuelve una cadena de texto sin las etiquetas HTML:

<?php
    $cadena = "<p align='left'><span>Texto de ejemplo</span></p><!-- Comentario -->";
    echo strip_tags( $cadena );		// Devuelve: "Texto de ejemplo"
?>

Descargar ejemplo

Más información

Vea también: [ htmlspecialchars() ] - [ htmlentities() ] - [ strip_tags() ]

Convertir entidades HTML en caracteres HTML

Si en lugar de convertir caracteres especiales como entidades HTML tal y como hemos visto en el punto anterior, deseamos realizar el proceso contrario y convertir entidades HTML a sus correspondientes caracteres en HTML usaremos las funciones de PHP htmlspecialchars_decode() y html_entity_decode().

Ten en cuenta que htmlspecialchars_decode() sólo convertirá los caracteres que hemos especificado en el punto anterior para htmlspecialchars(), mientras que html_entity_decode() realizará todas las conversiones posibles.

Asimismo, como segundo parámetro opcional pueden tomar los mismos valores que las explicadas en el apartado anterior.

Descarga el siguiente ejemplo:

Descargar ejemplo

Al procesar el código PHP veremos:

Convertir entidades HTML

Convertir saltos de línea

En ocasiones necesitaremos convertir saltos de línea (\r\n, \n\r, \n o \r) a formato HTML (etiqueta <br>), cuando por ejemplo recuperamos texto de un componente <textarea> o lo obtenemos de una base de datos:

<?php
    $cadena = "Esto es\r una\r\n cadena\n de texto";
    echo html_entity_decode( $cadena );
?>

Descargar ejemplo

Saltos de línea

Más información

Vea también: [ nl2br() ]

Crear una cadena de texto a partir de un array

Crear un array a partir de una cadena

Eliminar espacios en blanco a principio y final de una cadena de texto

Para quitar los espacios en blanco al principio y final de una cadena disponemos de las siguientes funciones de PHP:

  • trim(): elimina los espacios tanto a principio como a final de una cadena de texto.
  • ltrim(): quita los espacios al principio de la cadena.
  • rtrim(): quita los espacios al final de la cadena.

A continuación puedes ver unos ejemplos:

<?php
    $cadena1 = "   Curso de PHP  -    ";
    $cadena2 = "       Curso de PHP";
    $cadena3 = "Curso de PHP       ";

    echo "<pre>";
    echo "\$cadena1 : [".trim($cadena1)."]<br />";	 // Devuelve: "$cadena1 : [Curso de PHP  -]"
    echo "\$cadena2 : [".ltrim($cadena2)."]<br />";	// Devuelve: "$cadena2 : [Curso de PHP]"
    echo "\$cadena3 : [".rtrim($cadena3)."]<br />";	// Devuelve: "$cadena3 : [Curso de PHP]"
    echo "</pre>";
?>

Descargar ejemplo

Observa que usamos la etiqueta HTML <pre>, que permite mantener el formato del texto (para que puedas comprender mejor el ejemplo).

Más información

Vea también: [ trim() ] - [ ltrim() ] - [ rtrim() ]

Contar el número de palabras

Si necesitamos averiguar el número de palabras en una cadena de texto usaremos la función str_word_count():

<?php
    $nombres = "PEPE, ALFREDO, ALBERTO, CARMEN, MARÍA, TERESA, MARÍA";

    // Devuelve: "La cadena contiene [7] palabras"
    echo "La cadena contiene [".str_word_count( $nombres )."] palabras";
?>

Descargar ejemplo

Más información

Vea también: [ str_word_count() ]

Primera página Anterior Siguiente Última página
Usamos cookies para ofrecerte una experiencia mejorada, el continuar navegando supone que aceptas su uso