$var = "Hi there"."<br/>"."Welcome to my website"."<br/>;"
echo $var;
Есть ли элегантный способ обработки строк в PHP? Я не уверен в других языках, но С++ имеет eol
, поэтому что-то более читаемое и элегантное в использовании?
Спасибо
$var = "Hi there"."<br/>"."Welcome to my website"."<br/>;"
echo $var;
Есть ли элегантный способ обработки строк в PHP? Я не уверен в других языках, но С++ имеет eol
, поэтому что-то более читаемое и элегантное в использовании?
Спасибо
В итоге я написал функцию, которая до сих пор работала для меня:
// 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');
Для строк, 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
.
Я определил это:
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, чтобы разбить линию.
чтобы вы могли использовать его, используя define
define ("EOL","<br>");
то вы можете назвать его
Поскольку вы выводите браузер, вы должны использовать <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.