web-dev-qa-db-ja.com

改行用のエレガントなソリューション(PHP)

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

PHPで改行を処理するエレガントな方法はありますか?他の言語についてはわかりませんが、C++にはeolがあるので、読みやすくエレガントなものを使用できますか?

ありがとう

26
3zzy

私はこれまでのところうまく機能している関数を書くことになりました:

// 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
3zzy

改行の場合、PHP as _"\n"_ double quote strings を参照))および _PHP_EOL_

ここでは、_<br />_を使用しています。これはPHP line-breakではありません。HTMLの改行です。


ここで、投稿した内容を簡略化できます(HTML改行付き):文字列の連結は不要です。次のように、すべてを1つの文字列に入れることができます。

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

または、PHP linebreaks:

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

注:前に_<br>_を挿入する nl2br() 関数もご覧ください。 _\n_。

44
Pascal MARTIN

私はこれを定義しました:

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

この後、LNBRを使用します。\n

6
TheVyom

pHPの改行では、PHP_EOL(LINEの終わり)を使用できます。これは「\ n」として機能しますが、ht mlページに表示できません。

したがって、defineを使用して使用できます

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

それからあなたはそれを呼び出すことができます

あまり「エレガント」ではなく、ちょっとした無駄ではありませんが、コードがどのように見えるかを本当に気にする場合は、独自の派手なフラグを作成してから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 />

最初のメソッドを「中指スタイル」、2番目のメソッドを「ヤギスタイル」と呼びます。

1
RandyMorris

さて、他の言語と同様に、いくつかの方法があります。

前の回答者が述べたように、「<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);

ただし、一般的に言えば、PHP echo/printステートメント内でのHTMLのハードコーディングは避けてください。走る。

0
mkgrunder

ブラウザに出力しているため、<br/>を使用する必要があります。それ以外の場合は、\n\r、または両方が組み合わされています。

0
Sarfraz