Foros del Web » Programando para Internet » PHP »

nl2br(), anda con comillas dobles , pero no con simples ni con $_POST

Estas en el tema de nl2br(), anda con comillas dobles , pero no con simples ni con $_POST en el foro de PHP en Foros del Web. hola que tal tenia una duda ... trabajo las variables pasandola por mysql_real_escape_string(), la cual a los salto de carro me los transforma en \r\n ...
  #1 (permalink)  
Antiguo 21/01/2010, 21:15
Avatar de mauro770  
Fecha de Ingreso: mayo-2009
Mensajes: 109
Antigüedad: 15 años, 6 meses
Puntos: 1
nl2br(), anda con comillas dobles , pero no con simples ni con $_POST

hola que tal tenia una duda ...
trabajo las variables pasandola por mysql_real_escape_string(), la cual a los salto de carro me los transforma en \r\n me informaron que usando nl2br("") el problema se solucionaria pero eso fue en parte por que
si uso nl2br("") anda bien (usando comillas dobles para encerrar el string), pero si uso nl2br('') no anda bien es como si no fuera tratado(usando comillas simples)
lo mismo pasa con $_POST, no he logrado que nl2br() funcione, siempre me lo devuelve como si no hubiese sido tratado.
estube leyendo y probando el tema viene mas o menos asi :
Código PHP:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<?php
echo nl2br('Welcome\r\nThis is my HTML document'); // este devuelve Welcome\r\nThis is my HTML document
echo '<p></p>';
echo 
nl2br("Welcome\r\nThis is my HTML document"); // este devuelve Welcome<br />This is my HTML document
echo '<p></p>';
?>

<?php
echo 'sin enviar por post: '.nl2br("Welcome\r\nThis is my HTML document");// este devuelve Welcome<br />This is my HTML document
echo '<p></p>';
echo 
'enviado por post: '.nl2br($_POST['a']);// este devuelve Welcome\r\nThis is my HTML document
?>

<form id="form1" name="form1" method="post" action="">
  <label>
  <input type="text" name="a" id="a" value="Welcome\r\nThis is my HTML document"/>
  </label>
  <p>
    <label>
    <input type="submit" name="button" id="button" value="Enviar" />
    </label>
  </p>
</form>
</body>
</html>
espero haberme expresado bien
abria una solucion para esto ? o es recomendable presindir de esta funcion ?
muchas gracias desde ya.
  #2 (permalink)  
Antiguo 21/01/2010, 21:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 6 meses
Puntos: 839
Respuesta: nl2br(), anda con comillas dobles , pero no con simples ni con $_POST

Porque dentro de las comillas simples no se expanden las secuencias de caracteres especiales.
Véase: http://www.php.net/manual/en/languag....syntax.single
Cita:
Note: Unlike the two other syntaxes, variables and escape sequences for special characters will not be expanded when they occur in single quoted strings.
Tampoco dentro de HTML. Debes usar un textarea y añadir un salto de línea literal para que puedas recibirlo como tal en $_POST.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Etiquetas: comillas, dobles, post, simples
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:00.