我是这么写的mysql函数,用来过滤数据库某张表里的某个字段里包含的html标签。
当查询这个字段时,我直接调用这个函数就可以了。
我是这么写的,虽然是把所有带<>这个符号都过滤掉了,但是我感觉里面不太好,一旦我想在里面写入带<>内容,它都给我过滤掉了,其实我只想过滤属于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标签的一些内容,而不是所有带<>尖括号的内容,请问还有别的更好的方法吗?