【问题标题】:HTML displaying articlesHTML 显示文章
【发布时间】:2016-09-02 18:32:46
【问题描述】:

大家好,我正在构建一个网络应用程序,用户可以在其中登录并发布/阅读文章和评论等。

我给他们一个表格来发布一篇文章,他们提供它的标题、描述和文本。

将验证和 sql 注入放在一边(已经完成),我需要帮助将存储在 MySQL 数据库中的文章显示为 TEXT。

我从 textarea 中获取文章文本,并将其显示在 p 标签中,但显然它会跳过用户输入的换行符,但 pre 标签通过提供广泛的可滚动显示使其丑陋.我想知道哪个标签适合用于此目的?或者甚至通过textarea 接收文章对吗?

我是一名学习者,并且是第一次构建这样一个带有文章和 cmets 部分的 web 应用程序,因此欢迎提出任何建议。提前谢谢你。

【问题讨论】:

  • 这不是一个问题吗?我没有得到你:(
  • 如果这是一个问题,问号在哪里? (#huglife)
  • 好的,我试着让它更清楚。对不起
  • 如果您对其中任何一个有答案,欢迎您

标签: php html mysql web-applications pre


【解决方案1】:

在 PHP 中,您可以使用函数 nl2br 将所有换行符更改为 BR HTML 标记。 http://php.net/nl2br

【讨论】:

    【解决方案2】:

    建议的答案:

    使用<span></span>

    <p></p><div></div> 之类的标签尽可能多地占用空间,而 <span></span> 尽可能少地容纳其中的任何内容,因此它可能更适合您。

    如果这对你有用,请告诉我。

    【讨论】:

      【解决方案3】:

      我的建议有两个选择:

      1.使用纯文本: 如果您希望该用户不能在内容中放入任何 HTML,请向用户显示一个简单的 HTML Textarea 输入,然后当用户输入新行(Enter 键)时,它将在您的数据库中为 \n。当您想打印文章时,只需使用nl2br($article_contents);,它会将新行 (\n) 转换为 HTML 换行符。

      2。富文本: 如果您希望用户将 HTML 内容放入文章中,那么使用任何文本编辑器(如 TinyMCE)会很容易。 TinyMCE 将使您的用户轻松进行简单的 HTML 格式设置,如标题、粗体、斜体、段落对齐、颜色、添加图像。然后在 PHP 端使用 strip_tags 函数只允许某些标签,这样用户就不能在 HTML 内容中插入任何恶意代码,如 XSS 注入。例如:

      strip_tags($article_contents, "<u><b><i><font><span><p>");
      

      【讨论】:

      • 谢谢,但是在线文本编辑器可以在移动浏览器上正常工作吗?
      • 它不是在线文本编辑器,您必须将库(css、js)包含到您的模板中。如果我没记错的话,TinyMCE 可以在新的移动浏览器上正常工作,我认为它使用 contenteditable HTML 属性可能会在旧浏览器中中断:caniuse.com/#feat=contenteditable
      猜你喜欢
      • 2014-09-07
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 2021-03-29
      • 2015-11-24
      • 2020-05-05
      • 1970-01-01
      相关资源
      最近更新 更多