Articulos/Guias

Recursos

Patrocinadores
Patrocinador

Formateado de texto con PHP

Añadido el 07/05/2006

Vamos a explicar a continuación las diversas funciones que nos permitirán modificar y alterar textos o cadenas de texto. Usaremos las siguientes funciones: str_replace, htmlspecialchars y nl2br.

Empezaremos modificando partes o elementos de un texto o array.

Supongamos que desde un formulario enviamos un texto a una base de datos, lo primero será adaptar los caracteres especiales que tenga el texto y que podrían darnos problemas al añadirlos a la base de datos, por ejemplo: " las comillas.

Si en nuestro texto incluimos las comillas, al insertar el texto en la base de datos nos dará un error de sintaxis. <? $caracteres_especiales = array('"'); $caracteres_admitidos = array("""); $texto = str_replace($caracteres_especiales, $caracteres_admitidos, $texto); ?> Al hacer esto, sustituimos todas las comillas contenidas en la variable $texto, por su correspondiente en codigo. En nuestro caso hemos sustituido solo un caracter, pero se podría hacer algo así: <? $caracteres_especiales = array(""", "-"); $caracteres_admitidos = array(""", " "); $texto = str_replace($caracteres_especiales, $caracteres_admitidos, $texto); ?> Hemos añadido un segundo caso, en el que sustituimos el - (guión) por un espacio.

La función nl2br, nos permitirá formatear el texto procedente de una base de datos, transformando los retornos de carro, por saltos de linea. Si intentamos imprimir en nuestra web un texto procediente de la base de datos, nos mostrará el texto sin saltos de linea, todo seguido. Para evitar esto usamos la función nl2br. <? $texto = nl2br($texto); ?> Ahora nuestro texto se mostrará con saltos de linea.

htmlspecialchars se utiliza para deshabilitar la ejecución de codigo en el web. Por ejemplo, supongamos que en nuestra base de datos tenemos un articulo como este, en el que hay ejemplos de codigo html, php,... el caso es que al mostrarlo, el codigo se ejecutará en vez de mostrarse como texto, para evitar esto usamos la función htmlspecialchars: <? $texto = htmlspecialchars($texto); ?>

Navegalis.com © 2003-2008 - Legal