6

私は現在、生成する nl2br() でフォーマットされたデータベースに多くのジョークを持っています...

This is just dummy text. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
<br /><br />
Vestibulum gravida justo in arcu mattis lacinia. Mauris aliquet mi quis diam euismod blandit ultricies ac lacus.
<br /><br />
Aliquam erat volutpat. Donec sed nisi ac velit viverra hendrerit.
<br />
Praesent molestie augue ligula, quis accumsan libero.

<br /><br />に変換するphp関数が必要で、<p></p>1つしかない場合は<br />そのままにしておきます。空白も削除

したがって、最終結果は...

<p>This is just dummy text. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Vestibulum gravida justo in arcu mattis lacinia. Mauris aliquet mi quis diam euismod blandit ultricies ac lacus. </p>
Aliquam erat volutpat. Donec sed nisi ac velit viverra hendrerit.<br />
Praesent molestie augue ligula, quis accumsan libero.

誰かが私を正しい方向に向けるか、これを行う簡単な機能を教えてもらえますか? ありがとう

4

5 に答える 5

10

PHPの文字列置換関数を使用して、すべて<br /><br />を。に置き換えます</p><p>http://php.net/manual/en/function.str-replace.php

サンプルコード:

$stringWithBRs = nl2br($originalString)
$stringWithPs = str_replace("<br /><br />", "</p>\n<p>", $stringWithBRs);
$stringWithPs = "<p>" . $stringWithPs . "</p>";

または、nl2br()関数を呼び出さなくても、次のコードを使用できます。

$stringWithPs = str_replace("\n\n", "</p>\n<p>", $originalString);
$stringWithPs = "<p>" . $stringWithPs . "</p>";
于 2013-02-16T00:00:06.047 に答える
3

元の文字列を直接変換するだけです。

$text=str_replace("<br /><br />", "</p><p>", $original_string);

HTML では、次のようになります。

<p>
 <?php echo $text; ?>
</p>
于 2014-01-29T17:39:40.107 に答える
0
$new = '';
foreach(explode("\n<br /><br />\n", $text) as $p) // split by double newlines
    $new.= "<p>$p</p>\n"; // and convert each part to a paragraph


// or if you want to keep it in a single line
$new = join(array_map(function($p){return "<p>$p</p>\n";}, explode("\n<br /><br />\n", $text)));
于 2014-07-26T09:19:01.903 に答える