Заменить значение из базы данных структурой contenteditable div - PullRequest
0 голосов
/ 10 мая 2019

Я печатаю значение поля mysql на contenteditable div, и мне нужно, чтобы оно приняло соответствующую ему структуру.С теми же divs и разрывами строк br.

Я пробовал функцию nl2br php, но она генерирует только разрывы строк br, поэтому она не работает для меня.Мне нужна полная структура.

Например:

<div id="textbox" contenteditable="true"><?php echo nl2br($text); ?></div>

Где $text - текст с разрывами строк \n из базы данных.

Так что при выполнении nl2br, измените их все на br.

В настоящее время я получаю это:

<div id="textbox" contenteditable="true">
  Line 1
  <br>
  Line 2
  <br>
  <br>
  Line 3
</div>

И мне нужно получить это:

<div id="textbox" contenteditable="true">
  Line 1
  <div>Line 2</div>
  <div>
    <br>
  </div>
  <div>Line 3</div>
</div>

Что это такое?генерируется автоматически при записи на contenteditable div.

1 Ответ

0 голосов
/ 10 мая 2019

Быстрая попытка того, что вы после, вывод выглядит нормально, но убедитесь, что он работает для того, что вы после.

Идея состоит в том, чтобы просто разбить текст на строки - начните с первой строки текста как есть, затем добавьте каждую последующую строку в теги <div> - если строка пустая - затем установите ее на <br />. ..

$text = 'Line 1
Line 2

Line 3';

$lines = explode("\n",$text);
$output = array_shift($lines);
foreach ( $lines as $line ) {
    $output .= "<div>".($line?:"<br />")."</div>";
}

echo $output;

С примером выше это дает ...

Line 1<div>Line 2</div><div><br /></div><div>Line 3</div>
...