我是这么写的mysql函数,用来过滤数据库某张表里的某个字段里包含的html标签。
当查询这个字段时,我直接调用这个函数就可以了。
DELIMITER $$ DROP FUNCTION IF EXISTS `abgent_website`.`removeHtml`$$ CREATE FUNCTION `removeHtml`(s varchar(255)) RETURNS varchar(255) BEGIN declare d int(20); declare dd int(20); declare sumstr varchar(255); while (instr(s,'<')!=0 && instr(s,'>')!=0) do set d = instr(s,'<'); set dd = instr(s,'>'); set sumstr = substr(s,1,d-1); set s = substr(s,dd+1); set s = concat(sumstr,s); end while; return s; END$$ DELIMITER ;
我是这么写的,虽然是把所有带<>这个符号都过滤掉了,但是我感觉里面不太好,一旦我想在里面写入带<>内容,它都给我过滤掉了,其实我只想过滤属于html标签的一些内容,而不是所有带<>尖括号的内容,请问还有别的更好的方法吗?