2011-08-02 20 views
6

Cómo insertar la función nl2br con htmlspecialchars? Tengo un sitio donde la entrada se toma de textarea y nl2br se usa para convertir la siguiente línea en un párrafo. Cuando probé con htmlspecialchars obtuve el siguiente resultado. Aquí escribí tres palabras de 'prueba' en textarea y las guardé en la base de datos. Estoy usando htmlspecialchars para evitar inyecciones html pero debido a esta función la función nl2br no funciona. ¿Puedes decirme cómo evitar este problema?cómo utilizar la función nl2br con htmlspecialchars en phpmysql

test<br/>test<br/>test<br/> 

Respuesta

8

yo hacer:

htmlspecialchars(nl2br($text)); 

que necesita:

nl2br(htmlspecialchars($text)); 
3

llamada nl2br después de llamar htmlspecialchars:

echo nl2br(htmlspecialchars($the_text)); 
+0

gracias por esta buena respuesta – test

2

Se trata de usar el orden correcto,

htmlspecialchars (nl2br ($ string)); producirá el resultado que describes nl2br (htmlspecialchars ($ cadena)); producirá el resultado que desee.

+0

gracias por su buena respuesta – test

1

nl2br

inserciones línea HTML antes de cada salto de línea de una cadena

htmlspecialchars

convertir caracteres especiales a entidades HTML

$text = "Hello \n World"; 
$unexpected_result = htmlspecialchars(nl2br($text)); // => "Hello &lt;br /&gt; World" 
$expected_result = nl2br(htmlspecialchars($text)); // => "Hello <br/> World" 

... Es por eso que tenemos que utilizar el uso htmlspecialchars antes nl2br

Cuestiones relacionadas