改行コードを基点に分割してPタグで囲んだうえで出力

WordPress > 改行コードを基点に分割してPタグで囲んだうえで出力

ウィキ記法などで生成されたテキストデータをウィキ記法以外の環境で出力する際、Pタグが利かず段落が詰まって出力されてしまう場合の対処方法についてです。

ウィキ記法の場合、空行を入れることで段落が生成されるため、一般的な環境でウィキペディアデータを出力させるのであれば行末の改行コードを基点に分割したうえで出力させるのもひとつの手です。

下記コードは「preg_split」で改行コードを基点に分割しつつ、最終的に各要素をPタグで囲んで出力させています。


$text = <<<FOD

正規表現(せいきひょうげん)とは、文字列の集合を一つの文字列で表現する方法の一つである。
形式言語理論の分野では比較的こちらの訳語の方が使われる。まれに正規式と呼ばれることもある。
もともと正規表現は形式言語理論において正規言語を表すための手段として導入された。

FOD;

  // 正規表現(改行コードを基点に分割して配列へ
  $textconray = preg_split("/[\\n]+/u", $text);
  
  // 配列内のキーと値を代入
  foreach ($textconray as $text_key => $text_value){
    $text_value_strlen = strlen($text_value);
      
      // 60バイト(UTF-8で20文字以上であれば)
      if ($text_value_strlen >= 60) {
        // <p>タグで囲んで出力
          echo "<p>".$text_value."</p>\n";
      }else{
        // (UTF-8で20文字未満であれば)行末に<br />を追加して出力
        echo $text_value."<br />\n";
      }
}

/* 出力結果
正規表現(せいきひょうげん)とは、文字列の集合を一つの文字列で表現する方法の一つである。

形式言語理論の分野では比較的こちらの訳語の方が使われる。まれに正規式と呼ばれることもある。

もともと正規表現は形式言語理論において正規言語を表すための手段として導入された。
*/

短い文章についてはPタグで囲まずに行末にbrタグを追加して出力させています。