Ayuda PHP: los echos no me saltan línea

LOc0

Hola. Pues na, que como he visto que el PHP se parece mucho a mi querido C me he puesto a hacerme algunas cosillas pa mi cutre-web, pero resulta que tengo un "problema" con lo más sencillo. Se trata de la sentencia echo. (Bueno, me pasa tb con printf).

Si pongo:

echo 'Hoy\nes jueves';

Al probarlo en el navegador me encuentro que me sale todo junto (Hoy es jueves) sin saltar línea. Como ya he puesto, he probado con printf y tb me pasa. LA única solución que he encontrado es bajar las lineas por el HTML pero es un poco coñazo tener que estar continuamente abriendo y cerrando el código PHP pa insertar frases...

¿Alguna idea?

Salu2 ;)

DReaMeR99

en html :) echo "lol <.b.r.> lol"

saca los "." , es q si no los pongo no sale lo del br

PiradoIV

Puedes hacerlo de dos maneras:

echo "Hoy\nes jueves";
echo 'Hoy'."\n".'es jueves';

Saludotes,
Pirado IV estuvo akí ;)

LOc0

Gracias por responder. Dreamer se lleva el gato al agua. Pirado, de esa forma a mi por lo menos NO me rula :(

Salu2 ;)

RedHat

como dice piradoIV

los echo" " van mejor q los echo' ' ya q puedes poner las variabes y tol puto rollo sin tener q poner '.$var.' :D

PiradoIV

Lo que quieres hacer es un salto de linea en HTML, no en PHP, te había entendido mal.

Modo 1:
<br />

Modo 2:
<p>Blah blah</p>
<p>bleh bleh blih</p>

Modo 3:
<pre>Hola,
span permite,
entre otras cosas,
poner el texto de esta forma,
tal y como pides.</pre>

Modo 4:
<div>Primera linea</div>
<div>Segunda linea</div>

Saludotes,
Pirado IV estuvo akí ;)

LOc0

/\
||
||
Gracias ;)

La cosa es que el echo "Linea1 \n Linea2 \n Linea3" en teoría debería funcionar y mostrarte un texto en distintas lineas, pero no va. De todos modos, metiendo <.b.r> tira bien.

Salu2

AntonRodin

una pregunta <span> es igual que <pre>?

BrUn

tengo entendido que el \n es para hacer salto de linea en el código fuente de la web, y no para hacer salto de linea en la web

Nemox

El tema está en la diferencia entre las comillas simples y las dobles.
Cuando detrás de un echo ponemos unas comillas simples, el intérprete de php devuelve el contenido tal y como está, mientras que con las comillas dobles interpreta las variables y caracteres de escape que se encuentre. De manera que si tenemos:

$user="Pepe";
echo 'Bienvenido a mi web, $user!';

echo "Bienvenido a mi web, $user!";

lo que nos devolverá será:

Bienvenido a mi web, $user!

Bienvenido a mi web, Pepe!

(he omitido los saltos de línea para intentar hacerlo más claro).

Espero haber sido de ayuda para alguien :)

nanoSpawn

Anton: para nada, <span> es para aislar trozos de una frase, palabras concretas, etc, y asignarles su estilo.

<pre> es de preformatted, sirve para contener código o trozos de texto que vienen con su propio formato de saltos de línea (lo que esté dentro de <pre> no necesita <.b.r> para hacer salto de línea)

PiradoIV

Ups, error mío, me refería a pre y no a span x)

Saludotes,
Pirado IV.

AntonRodin

Aunque digan que html es falic y todo esto llevo 1 año ya voy por xhtml pero nunca vi <span> xDDD en fin si sirve pa eso pues para mi tiene mazo de utilidad sobre todo con css thx

aGaiNST

Hola loco no te funciona el \n simplemente porque en el codigo html no lo recone como salto de lineas, es decir solo nos sirviria cuando queremos poner texto en un <textarea></textarea> Ya que no se usa codigo html en una area de texto.

Seria también al reves si intentamos hacer un <br> en una area de texto. Asi que a usar codigo html :P

Sobre las comillas dobles o simples, la diferencia que han dicho ya es que el podemos poner variable dentro de las comillas y en la otra no, si pero es que ademas hacemos trabajar de diferente modo al interprete de php, es decir, si ponemos doble comillas se pondra analizar todo el texto en busca de un $ para reconocerlo como una variable con lo que tenemos que tardara mas en cargar la web,no?

En cambio si pones una comilla simple tenemos que el interprete coge ese trozo de texto y lo manda para el navegador sin tener que parchear nada porque el sabe que no puede haber una variable allí. Y solamente cuando le pongamos un punto puede que sea una variable, es decir tardara menos en procesar una web.

Un saludo!

Usuarios habituales

  • AntonRodin
  • PiradoIV
  • nanoSpawn
  • BrUn
  • LOc0
  • RedHat
  • DReaMeR99