删除
>从文本区域?

发布于 2024-12-06 12:32:32 字数 383 浏览 0 评论 0原文

我试图在消息“原始消息”之后进行换行,我已经尝试过这样做,但它一直向我显示

---Original message---<br />
message

<textarea id="txtMessage" rows="10" cols="50"><?php echo nl2br(str_replace('<br/>', " ","---Original message---\n".$array['message']));?></textarea>

我想要这样的东西:

---Original message---
message

有什么建议吗?

I am trying to do a line break after the message "Original message", I have tried with this but It keeps showing me the

---Original message---<br />
message

<textarea id="txtMessage" rows="10" cols="50"><?php echo nl2br(str_replace('<br/>', " ","---Original message---\n".$array['message']));?></textarea>

I want something likes this:

---Original message---
message

any advise?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

向地狱狂奔 2024-12-13 12:32:33

这应该做你想做的事:

<?php echo str_replace('<br />', " ","---Original message---\n".$array['message']);?>

nl2br — 在字符串中的所有换行符之前插入 HTML 换行符 (来自 php.net)

示例:

echo "<textarea>HI! \nThis is some String, \nit works fine</textarea>";

结果:

new中的行示例textarea

但是如果你尝试这个:

echo nl2br("<textarea>HI! \nThis is some String, \nit works fine</textarea>");

你会得到这个:

new line with nl2br in texarea

因此你应该在将 nl2br 保存到数据库之前不要使用它,否则每次尝试编辑文本时都必须删除
!只需在将其打印为文本时使用它即可。

This should do what you want it to:

<?php echo str_replace('<br />', " ","---Original message---\n".$array['message']);?>

nl2br — Inserts HTML line breaks before all newlines in a string (from php.net)

Example:

echo "<textarea>HI! \nThis is some String, \nit works fine</textarea>";

Result:

new line example in textarea

But if you try this:

echo nl2br("<textarea>HI! \nThis is some String, \nit works fine</textarea>");

you will get this:

new line with nl2br in texarea

Therefore you should not use nl2br before saving it to database, otherwise you have to get rid of <br /> every time you try to edit text! Just use it when you print it out as text.

因为看清所以看轻 2024-12-13 12:32:33
echo nl2br(str_replace('<br/>', " ", ... ));

应该是

echo str_replace('<br />', ' ', ... );
echo nl2br(str_replace('<br/>', " ", ... ));

should be

echo str_replace('<br />', ' ', ... );
眼泪淡了忧伤 2024-12-13 12:32:33

php 函数“nl2br”接受换行符,并将它们转换为 br 标签。如果您不希望这样,您应该将其删除:)。

呵呵,被瑞恩打败了。

The php function "nl2br" takes newlines, and converts them into br tags. If you don't want that, you should probably remove it :).

Heh, beaten by Ryan.

计㈡愣 2024-12-13 12:32:33

您正在尝试替换
,但原始文本有
(注意空格)。

You're trying to replace <br/>, but the original text has <br /> (note the space).

爱的十字路口 2024-12-13 12:32:33

您正在删除 HTML 中断,然后将它们添加回来!查看您的代码:

nl2br(str_replace('<br/>', " ","---Original message---\n".$array['message']))

首先, str_replace 替换 '
gt ;'
带有一个空格。然后, nl2br 为每个添加一个
它找到换行符(\n)。

删除 nl2br 调用就完成了。

You are removing the HTML breaks, then adding them back! Look at your code:

nl2br(str_replace('<br/>', " ","---Original message---\n".$array['message']))

First, str_replace replaces '<br/>' with a space. Then, nl2br adds a <br> for every newline (\n) it finds.

Remove nl2br call and it's done.

谈情不如逗狗 2024-12-13 12:32:33

如果您想对除文本区域内的内容之外的所有文本执行 nl2br,您可以这样做:

function clean_textarea_of_br($data) {
     return str_replace(array("<br>", "<br/>", "<br />"), "", $data[0]);
}

$message = preg_replace_callback('#<textarea[^>]*>(.*?)</textarea>#is',clean_textarea_of_br,$message);

If you want to do nl2br on all of the text except for what's inside the textarea you could do this:

function clean_textarea_of_br($data) {
     return str_replace(array("<br>", "<br/>", "<br />"), "", $data[0]);
}

$message = preg_replace_callback('#<textarea[^>]*>(.*?)</textarea>#is',clean_textarea_of_br,$message);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文