$var = "Hi there"."<br/>"."Welcome to my website"."<br/>;" echo $var;
Есть ли элегантный способ обработки строк в PHP? Я не уверен в других языках, но C ++ имеет eol
поэтому что-то более читаемое и элегантное в использовании?
благодаря
Для строк, PHP, как "\n"
(см. Строки двойных кавычек ) и PHP_EOL
.
Здесь вы используете <br />
, который не является перерывом в PHP: это разметка HTML.
Здесь вы можете упростить то, что вы разместили (с разрывами строк HTML) : нет необходимости в конкатенациях строк: вы можете поместить все в одну строку, например:
$var = "Hi there<br/>Welcome to my website<br/>";
Или, используя PHP-строки:
$var = "Hi there\nWelcome to my website\n";
Примечание: вы также можете взглянуть на nl2br()
, которая вставляет перед \n
.
Я определил это:
if (PHP_SAPI === 'cli') { define( "LNBR", PHP_EOL); } else { define( "LNBR", "<BR/>"); }
После этого используйте LNBR
везде, где я хочу использовать \n
.
в разрывах php-строк мы можем использовать PHP_EOL (END of LINE) .it работает как «\ n», но его нельзя отобразить на странице ht ml. Потому что нам нужно дать HTML-break, чтобы сломать строку.
поэтому вы можете использовать его, используя define
define ("EOL","<br>");
то вы можете назвать это
Я закончил тем, что написал функцию, которая до сих пор работала для меня:
// 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');
Поскольку вы выводите браузер, вы должны использовать <br/>
. В противном случае существует \n
и \r
или оба вместе.
Ну, как и на любом языке, есть несколько способов сделать это.
Как уже отмечали предыдущие ответчики, « <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 вне кода, он сделает вещи намного более гибкими и удобными в долгосрочной перспективе.
Не очень «изящный» и вроде бы пустой, но если вам действительно нравится, как выглядит код, вы можете сделать свой собственный фэнтезийный флаг, а затем сделать 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 />
или
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 />
Я называю первый метод «стиль среднего пальца» и второй «стиль козла».
\ n не работает для меня. \ n появляется в телетексте письма, которое я отправлял. Вот как я его разрешил.
str_pad ($ input, 990); // так, чтобы пробелы вырвались на отрезок 990.