在 html textarea 的每一行周围添加段落标签
Adding paragraph tags around each line in html textarea
我正在尝试让用户尽可能轻松地在文本区域中输入文本,而无需他们知道任何代码或必须处理所见即所得格式。这只是文字。
但是由于文本在页面上显示时将以 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>
标签放在所有内容周围 - 一个在 post 的开头,一个在结尾,忽略所有 returns。
谁能看出我做错了什么?
当您调用 mysqli_real_escape_string()
时,这会对某些内容进行编码 - 来自 manual
escapestr
The string to be escaped.
Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and 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()
。
我正在尝试让用户尽可能轻松地在文本区域中输入文本,而无需他们知道任何代码或必须处理所见即所得格式。这只是文字。 但是由于文本在页面上显示时将以 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>
标签放在所有内容周围 - 一个在 post 的开头,一个在结尾,忽略所有 returns。
谁能看出我做错了什么?
当您调用 mysqli_real_escape_string()
时,这会对某些内容进行编码 - 来自 manual
escapestr
The string to be escaped.
Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and 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()
。