Подтвердить что ты не робот

Элегантное решение для разрывов строк (PHP)

$var = "Hi there"."<br/>"."Welcome to my website"."<br/>;"
echo $var;

Есть ли элегантный способ обработки строк в PHP? Я не уверен в других языках, но С++ имеет eol, поэтому что-то более читаемое и элегантное в использовании?

Спасибо

4b9b3361

Ответ 1

В итоге я написал функцию, которая до сих пор работала для меня:

// 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 Stackoverflow!';
out($var, 'Label');

Ответ 2

Для строк, PHP как "\n" (см. строки двойной кавычки) и PHP_EOL.

Здесь вы используете <br />, который не является перерывом в PHP: это разметка HTML.


Здесь вы можете упростить то, что вы разместили (с разрывами строк HTML): нет необходимости в конкатенациях строк: вы можете поместить все в одну строку, например:

$var = "Hi there<br/>Welcome to my website<br/>";

Или, используя PHP linebreaks:

$var = "Hi there\nWelcome to my website\n";

Примечание: вы также можете взглянуть на функцию nl2br(), которая вставляет <br> до \n.

Ответ 3

Я определил это:

if (PHP_SAPI === 'cli')
{
   define( "LNBR", PHP_EOL);
}
else
{
   define( "LNBR", "<BR/>");
}

После этого используйте LNBR везде, где я хочу использовать \n.

Ответ 4

в разрывах php-строк мы можем использовать PHP_EOL (END of LINE).it работает как "\n" но он не может быть показан на странице ht ml. Потому что нам нужно дать разрыву HTML, чтобы разбить линию.

чтобы вы могли использовать его, используя define

define ("EOL","<br>");

то вы можете назвать его

Ответ 5

Поскольку вы выводите браузер, вы должны использовать <br/>. В противном случае есть \n и \r или оба вместе.

Ответ 6

Ну, как и на любом языке, есть несколько способов сделать это.

Как уже отмечали предыдущие ответчики, "<br/>" не является линейным перерывом в традиционном смысле, это разрыв строки HTML. Я не знаю встроенной константы PHP для этого, но вы всегда можете определить свой собственный:

// Something like this, but call it whatever you like
const HTML_LINEBREAK = "<br/>";

Если вы выводите кучу строк (например, из массива строк), вы можете использовать его следующим образом:

// Output an array of strings
$myStrings = Array('Line1','Line2','Line3');
echo implode(HTML_LINEBREAK,$myStrings);

Однако, вообще говоря, я бы сказал, избегая жесткого кодирования HTML внутри ваших инструкций PHP echo/print. Если вы можете сохранить HTML вне кода, он делает вещи намного более гибкими и поддерживаемыми в долгосрочной перспективе.

Ответ 7

Не очень "изящный" и нехороший отход, но если вы действительно заботитесь о том, как выглядит код, вы можете сделать свой собственный фэнтезийный флаг, а затем сделать str_replace.

Example:<br />
$myoutput =  "After this sentence there is a line break.<b>.|..</b> Here is a new line.";<br />
$myoutput =  str_replace(".|..","&lt;br />",$myoutput);<br />

или

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","&lt;br />",$myoutput);<br />

Я вызываю первый метод "стиль среднего пальца" и второй "стиль козла".

Ответ 8

\n не работал у меня. \n отображается в телетексте отправленного мной письма. Вот как я его разрешил.

str_pad ($ input, 990);//так, чтобы пробелы выходили на отрезок 990.