4
$variable = 'Afrikaans 
Shqip - Albanian  
Euskara - Basque';

各改行を段落に変換するにはどうすればよいですか?

$variableなる必要があります:

<p>Afrikaans</p>
<p>Shqip - Albanian</p>
<p>Euskara - Basque</p>
4

6 に答える 6

17

これを試して:

$variable = str_replace("\n", "</p>\n<p>", '<p>'.$variable.'</p>');
于 2010-09-17T19:03:50.353 に答える
4

以下はトリックを行う必要があります:

$variable = '<p>' . str_replace("\n", "</p><p>", $variable) . '</p>';
于 2010-09-17T19:04:03.100 に答える
1
$array = explode("\n", $variable);
$newVariable = '<p>'.implode('</p><p>', $array).'</p>'
于 2010-09-17T19:03:20.677 に答える
1
<?php
$variable = 'Afrikaans  
Shqip - Albanian   
Euskara - Basque'; 
$prep0 = str_replace(array("\r\n" , "\n\r") , "\n" , $variable);
$prep1 = str_replace("\r" , "\n" , $prep0);
$prep2 = preg_replace(array('/\n\s+/' , '/\s+\n/') , "\n" , trim($prep1));
$result = '<p>'.str_replace("\n", "</p>\n<p>", $prep2).'</p>'; 
echo $result;
/*
<p>Afrikaans</p>
<p>Shqip - Albanian</p>
<p>Euskara - Basque</p>
*/
?>

説明:

$prep0 と $prep1: 各行が \n で終わっていることを確認してください。

$prep2: 冗長な空白を削除します。改行を保持します。

$result: p タグを追加します。

$prep0、$prep1、および $prep2 を含めない場合、$result は次のようになります。

<p>Afrikaans  
</p>
<p>Shqip - Albanian   
</p>
<p>Euskara - Basque</p>

あまり良くないと思います。

また、必要がない限り preg_replace を使用しないでください。ほとんどの場合、str_replace の方が高速です (少なくとも私の経験によると)。詳細については、以下のコメントを参照してください。

于 2010-09-19T01:36:43.760 に答える
0

試す:

$variable = 'Afrikaans
Shqip - Albanian  
Euskara - Basque';

$result = preg_replace("/\r\n/", "<p>$1</p>", $variable);
echo $result;
于 2010-09-17T19:05:33.360 に答える