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 <.
- > (mayor que) se convierte en >.
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>" );
?>
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:
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>" );
?>
Al visualizar el código fuente de la página veremos:
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"
?>

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

Relacionado: [ Caracteres especiales en 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:
Al procesar el código PHP veremos:

Vea también: [ htmlspecialchars_decode() ] - [ html_entity_decode() ]

Relacionado: [ Caracteres especiales en HTML ]
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 );
?>

Vea también: [ nl2br() ]

Relacionado: [ Crear una cadena de texto a partir de un array ]

Relacionado: [ Crear un array a partir de una cadena ]
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>";
?>
Observa que usamos la etiqueta HTML <pre>, que permite mantener el formato del texto (para que puedas comprender mejor el ejemplo).
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";
?>

Vea también: [ str_word_count() ]