将 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 所以 text
和 varchar
应该在少于 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 数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 $(element).css(styles) 将多个样式应用于 div? [复制]