【问题标题】:Apply CSS Styling to MySQL data fetching with PHP将 CSS 样式应用于使用 PHP 获取 MySQL 数据
【发布时间】:2015-10-16 05:23:06
【问题描述】:

我正在显示描述

<p> <?php echo $description ?> </p>

描述存储在数据库中,我想显示类似这样的描述。

Lorem Ipsum 只是打印和排版的虚拟文本 Lorem Ipsum 只是打印和排版的虚拟文本

● 形状:圆形

● 认证 0.50。

● 纯天然

但目前显示是这样的

Lorem Ipsum 只是打印和排版的虚拟文本 Lorem Ipsum 只是印刷和排版的虚拟文本 ?形状:圆形?认证 1.00。 ?真正的天然地球钻石

【问题讨论】:

  • 会不会一直有问号,列表从第一个问号之后开始?
  • 以不同的方式打印,它是如何存储在您的数据库中的?可以分别检索列表项吗?
  • 描述存储在一列中。
  • 那么你就无法解析字符串了。如果您可以依靠每个项目前面的问号,那么我猜想找到并替换。您需要更改 html 输出。
  • Ok find and replace 如何在段落结束和 li 开始后应用新行?

标签: php css mysqli


【解决方案1】:

我打赌你的描述栏类型是varchar...

我认为最好的方法是在数据库中将列类型text 保存为您想要的任何格式的HTML,这样一旦加载它仍然会被格式化并以您想要的方式查看。

您可以使用动态 HTML 编辑器输入格式化的 HTML,也可以通过 PHP 自己构建标记。

优秀的 DHTML 编辑器之一是summernote

【讨论】:

  • 为什么varchar不能保存HTML?
  • 它可以容纳html。但其最大大小为 255 字节,而文本最多可容纳 65,532 字节。 Html 将占用大量字节空间...但两者都可以保存标记。
  • 我认为 varchar 也包含 HTML,因为我在 varchar 字段中插入了 html 标签并且它仍在工作
  • 取决于mysql的版本。 The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions. dev.mysql.com/doc/refman/5.0/en/char.html 所以 textvarchar 应该在少于 65k 的数据中发挥相同的作用......
  • 关于尺寸部分的好点@chris85,谢谢你的说明。
【解决方案2】:

使用str_replace,类似这样:

<p> <?php echo str_replace('?', '<br/> ●', $description); ?> </p>

http://php.net/str_replace

【讨论】:

  • 感谢您的回答,但将类型从 varchar 转换为 text 工作
【解决方案3】:

虽然您可以将 HTML 标记放入数据库中,但我认为这在原则上是不好的做法。如果稍后您想使用相同的数据库生成 PDF 怎么办?然后,您将不得不编写代码来摆脱 DB 中的 HTML 标记。总体思路是将信息与信息格式分开。

相反,您可以创建一个新表 Description_detail,它有一个外键来描述。在上面的示例中,您将有一个 Description 记录,其中包含“Lorem ipsem...”段落,以及三个 Description_detail 记录,其中包含“Shape: round”等。然后在 PHP 中,使用您想要的任何 CSS 样式打印 Description ,然后遍历匹配的 Description_detail 并使用您想要的任何 CSS 样式打印它们。

当然,您必须逐个项目地决定何时值得付出额外努力来制定“原则上”更好的解决方案。

“原则上,原则和实践是相同的;但在实践中,它们总是不同的。”

【讨论】:

    猜你喜欢
    • 2015-02-23
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 2010-10-12
    • 2015-06-22
    相关资源
    最近更新 更多