之前给改版的一个学校里的站点突然提出要求,说需要将之前编辑的文章的字体大小全部改成默认值。
字体的控制无非有两种,一是font-size = 16 px;然后是<font size = 4>。但是,之前发布的文章,文字的控制是由编辑器生成的,而根据css的“靠近优先原则”,我们无法通过外层定义字体控制来影响已发布的内容——编辑器生成的字体控制更靠近文字!
总不能一篇一篇的改吧,,想了想之后,发现只需要将上述两种字体控制,删掉 font-size 和 size即可,这样,编辑器生成的字体控制就失效了,而我们在外层定义的字体控制规则起作用了。
下面是两个跟文章储存相关的表的结构,其中pa_article储存的是文章的相关信息,而pa_articletext储存的则是文章内容,其中外键是pa_article中的articleid。
pa_article:
字段 | 类型 | 整理 | 属性 | 空 | 默认 | 额外 |
articleid | int(10) | UNSIGNED | 否 | 无 | auto_increment | |
sortid | int(10) | UNSIGNED | 否 | 0 | ||
title | varchar(100) | gb2312_chinese_ci | 否 | |||
source | varchar(50) | gb2312_chinese_ci | 是 | NULL | ||
author | varchar(50) | gb2312_chinese_ci | 是 | NULL | ||
contact | varchar(50) | gb2312_chinese_ci | 是 | NULL | ||
description | text | gb2312_chinese_ci | 否 | 无 | ||
views | int(10) | UNSIGNED | 否 | 0 | ||
pa_articletext:
字段 | 类型 | 整理 | 属性 | 空 | 默认 | 额外 |
id | int(10) | UNSIGNED | 否 | 无 | auto_increment | |
subhead | varchar(100) | gb2312_chinese_ci | 否 | |||
articleid | int(10) | UNSIGNED | 否 | 0 | ||
articletext | longtext | gb2312_chinese_ci | 否 | 无 | ||
displayorder | tinyint(3) | 否 | 1 |
故最后去mysql控制台或者phpmyadmin里执行sql语句是:
UPDATE pa_articletext SET articletext = replace(articletext,"font-size","") WHERE articleid IN (SELECT articleid FROM pa_article WHERE sortid =1)
上面语句的意思是,将pa_articletext中的articletext字段的内容去除"font-size" 之后存回,而需要执行的条目则用IN语句标识在后面的SELECT中选出。
需要注意的是replace语句对大小写敏感,因此,除了去除"font-size",还要再运行一遍去除“FONT-SIZE”,同理去除“size”和“SIZE”。