将 CSS 样式应用于使用 PHP 获取 MySQL 数据

Posted

技术标签:

【中文标题】将 CSS 样式应用于使用 PHP 获取 MySQL 数据【英文标题】:Apply CSS Styling to MySQL data fetching with PHP 【发布时间】: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 开始后应用新行? 【参考方案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 样式打印它们。

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

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

【讨论】:

以上是关于将 CSS 样式应用于使用 PHP 获取 MySQL 数据的主要内容,如果未能解决你的问题,请参考以下文章

PHP实现类似于MySQ L的group by 效果

如何使用 $(element).css(styles) 将多个样式应用于 div? [复制]

将 CSS 样式应用于子元素

停止将 CSS 'a' 样式应用于链接的图像

保存后 CSS 样式未应用于网站(在 XAMPP localhost 上运行)

我可以将样式应用于 CSS 或 Sass 中的所有伪选择器吗?