文本区域输入 - 如何处理段落和标题?
我目前使用以下表达式,在将文本区域输入存储到 MySQL 数据库之前,用它在文本区域输入周围放置段落标签。
$inputText = str_replace('<p></p>', '', '<p>' . preg_replace('#([\r\n]\s*?[\r\n]){2,}#', '</p>$0<p>', $inputText) . '</p>');
这工作得很好,除非我想使用标题标签。然后,它们被不需要的段落标签包围:
<p><h3>Test Header</h3></p>
虽然这按预期显示,但从验证的角度来看,这并不是很好。
任何人都可以建议改进的表达式和/或方法来捕获标题标签并仅将段落标签应用于实际段落吗?或者,我可以在当前使用的表达式之前应用于我的输入以产生相同的所需效果的表达式。
作为旁注,我希望能够输入独立的超链接“a”标签,并且仍然像以前一样用段落标签包围它们。
我认为在将细节输入数据库后手动编辑细节以删除不需要的段落标签可能会更容易。
I currently use the following expression which I use to put paragraph tags around textarea input before storing it in a MySQL database.
$inputText = str_replace('<p></p>', '', '<p>' . preg_replace('#([\r\n]\s*?[\r\n]){2,}#', '</p>$0<p>', $inputText) . '</p>');
This works well and good, except when I wish to use header tags. These are then surrounded by unwanted paragraph tags:
<p><h3>Test Header</h3></p>
While this displays as expected, it is not great from a validation point of view.
Can anyone suggest an improved expression and/or method to catch headers tags and only apply the paragraph tags to actual paragraphs? Or, an expression which I can apply to my input prior to the expression I'm currently using to produce the same desired effect.
As a side note, I would like to be able to enter stand-alone hyperlink 'a' tags and still have them surrounded with paragraph tags as before.
I have considered that it may just be easier to manually edit the details after they are entered into the database to remove the unwanted paragraph tags.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我使用 wordpress 中的这个函数,将 p 很好地包裹在段落以及换行符周围,同时保留 HTML:
I use this function from wordpress, wraps p's around paragraphs nicely as well as line breaks whilst preserving HTML:
您可以像这样使用 strip_tags 函数:
它应该可以解决。
You can use the strip_tags function like this:
It should work out.