web-dev-qa-db-ja.com

テキスト領域フィールドを展開し、各行をHTMLでラップして別々にエコーする方法

高度なカスタムフィールドのテキストエリアを取得して、各行を別々に分割してテンプレートに表示する必要があります。 <li>のように、テキストエリアの各行をHTMLでラップしたいのです。

私は次のことを試してみましたが、それだけでは動作しません:

if (isset($instruction_textarea)){
    $arry=explode( "\r\n", $instruction_textarea );
}
for ($i = 0; $i <= count($arry); $i++){
    echo (trim($arry[$i])+"<br/>");
}
1
damrakred

私はこのようなことを試してみます:

$lines = explode("\n", $instruction_textarea); // or use PHP PHP_EOL constant
if ( !empty($lines) ) {
  echo '<ul>';
  foreach ( $lines as $line ) {
    echo '<li>'. trim( $line ) .'</li>';
  }
  echo '</ul>';
}

それはうまくいくはずです。

3

もっと簡単なのは、nl2br()を次のように使うことです。

if (isset($instruction_textarea)){
    echo '<li>'. nl2br($instruction_textarea) .'</li>';
}
0
Rich S