una - Solución elegante para saltos de línea(PHP)
salto de linea en php txt (8)
$var = "Hi there"."<br/>"."Welcome to my website"."<br/>;"
echo $var;
¿Hay una manera elegante de manejar saltos de línea en PHP? No estoy seguro de otros idiomas, pero C ++ tiene eol
algo más legible y elegante de usar?
Gracias
Bueno, como con cualquier idioma, hay varias maneras de hacerlo.
Como han respondido las respuestas anteriores, " <br/>"
no es un salto de línea en el sentido tradicional, es un salto de línea HTML. No conozco una constante PHP incorporada para esto, pero siempre puedes definir la tuya propia:
// Something like this, but call it whatever you like
const HTML_LINEBREAK = "<br/>";
Si está generando un montón de líneas (de una matriz de cadenas, por ejemplo), puede usarlo de esta manera:
// Output an array of strings
$myStrings = Array(''Line1'',''Line2'',''Line3'');
echo implode(HTML_LINEBREAK,$myStrings);
Sin embargo, en general, yo diría que evite la codificación de código HTML dentro de sus declaraciones de eco / impresión de PHP. Si puede mantener el código HTML fuera del código, hace que las cosas sean mucho más flexibles y fáciles de mantener a largo plazo.
Debido a que se está enviando al navegador, tiene que usar <br/>
. De lo contrario hay /n
/r
o ambos combinados.
He definido esto:
if (PHP_SAPI === ''cli'')
{
define( "LNBR", PHP_EOL);
}
else
{
define( "LNBR", "<BR/>");
}
Después de esto, use LNBR
donde quiera usar /n
.
No es muy "elegante" y un poco inútil, pero si realmente te importa cómo se ve el código, podrías hacer tu propia bandera elegante y luego hacer un str_replace.
Example:<br />
$myoutput = "After this sentence there is a line break.<b>.|..</b> Here is a new line.";<br />
$myoutput = str_replace(".|..","<br />",$myoutput);<br />
o
how about:<br />
$myoutput = "After this sentence there is a line break.<b>E(*)3</b> Here is a new line.";<br />
$myoutput = str_replace("E(*)3","<br />",$myoutput);<br />
Yo llamo al primer método "estilo del dedo medio" y al segundo "estilo de cabra".
Para linebreaks, PHP como "/n"
(ver cadenas de comillas dobles ) y PHP_EOL
.
Aquí, está utilizando <br />
, que no es un salto de línea de PHP: es un salto de línea HTML.
Aquí, puede simplificar lo que publicó (con linebreaks HTML) : no es necesario para las concatenaciones de cadenas: puede poner todo en una sola cadena, como esto:
$var = "Hi there<br/>Welcome to my website<br/>";
O, usando linebreaks PHP:
$var = "Hi there/nWelcome to my website/n";
Nota: es posible que también desee ver la función nl2br()
, que se inserta antes de /n
.
Terminé escribiendo una función que me ha funcionado bien hasta ahora:
// pretty print data
function out($data, $label = NULL) {
$CLI = (php_sapi_name() === ''cli'') ? ''cli'' : '''';
$gettype = gettype($data);
if (isset($label)) {
if ($CLI) { $label = $label . '': ''; }
else { $label = ''<b>''.$label.''</b>: ''; }
}
if ($gettype == ''string'' || $gettype == ''integer'' || $gettype == ''double'' || $gettype == ''boolean'') {
if ($CLI) { echo $label . $data . "/n"; }
else { echo $label . $data . "<br/>"; }
}
else {
if ($CLI) { echo $label . print_r($data,1) . "/n"; }
else { echo $label . "<pre>".print_r($data,1)."</pre>"; }
}
}
// Usage
out(''Hello world!'');
$var = ''Hello !'';
out($var, ''Label'');
/ n no funcionó para mí. Los / n aparecen en el texto del cuerpo del correo electrónico que estaba enviando ... así es como lo resolví.
str_pad ($ input, 990); // para que los espacios se rellenen hasta el 990 cortado.
en php line breaks podemos usar PHP_EOL (END of LINE) .it funciona como "/ n" pero no se puede mostrar en la página de ht ml .porque tenemos que dar un salto de HTML para romper la línea ...
para que puedas usarlo usando define
define ("EOL","<br>");
entonces puedes llamarlo