$variable = 'Afrikaans
Shqip - Albanian
Euskara - Basque';
各改行を段落に変換するにはどうすればよいですか?
$variable
なる必要があります:
<p>Afrikaans</p>
<p>Shqip - Albanian</p>
<p>Euskara - Basque</p>
これを試して:
$variable = str_replace("\n", "</p>\n<p>", '<p>'.$variable.'</p>');
以下はトリックを行う必要があります:
$variable = '<p>' . str_replace("\n", "</p><p>", $variable) . '</p>';
$array = explode("\n", $variable);
$newVariable = '<p>'.implode('</p><p>', $array).'</p>'
<?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 の方が高速です (少なくとも私の経験によると)。詳細については、以下のコメントを参照してください。
試す:
$variable = 'Afrikaans
Shqip - Albanian
Euskara - Basque';
$result = preg_replace("/\r\n/", "<p>$1</p>", $variable);
echo $result;