Добавление тегов абзаца вокруг каждой строки в текстовой области html - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь сделать ввод текста в текстовой области максимально простым для пользователя, без необходимости знать какой-либо код или иметь дело с форматированием wysiwyg. Это просто текст. Но поскольку текст, отображаемый на странице, будет отображаться в html, было бы здорово, если бы в каждой строке были теги 'p'.

Сейчас я попробовал это:

    $content = mysqli_real_escape_string($connection,$_POST['content']);

    $paragraphs = explode("\n", $content);
    for ($i = 0; $i < count ($paragraphs); $i++)
    {
        $paragraphs[$i] = '<p>' . $paragraphs[$i] . '</p>';
    }
    $content = implode('', $paragraphs);

Но это помещает теги <p></p> вокруг ВСЕГО - один в начале сообщения, а другой в конце, игнорируя все возвращаемые значения.

Кто-нибудь может увидеть, что я? я делаю неправильно?

1 Ответ

1 голос
/ 16 апреля 2020

Когда вы вызываете mysqli_real_escape_string(), это кодирует определенные вещи - из руководства

escapestr

Строка, которая будет escaped.

Кодируются следующие символы: NUL (ASCII 0), \ n, \ r, \, ', "и Control-Z.

Так что любые \n будет экранирован.

Вы можете изменить его, чтобы сначала выполнить замену ...

$paragraphs = explode("\n", $_POST['content']);
for ($i = 0; $i < count ($paragraphs); $i++)
{
    $paragraphs[$i] = '<p>' . $paragraphs[$i] . '</p>';
}
$content = implode('', $paragraphs);

НО вам также следует использовать подготовленные операторы, поэтому вам не нужно звонить mysqli_real_escape_string() на всех.

...