mysql中利用函数与过程过滤html标签
2017-04-18 13:19
363 查看
如果要过滤html标签多半同学都使用php的函数了,但是大家不知道是可以直接在mysql中进行去除htm标签吧,下面一起来看看吧。
mysql本身没有去除html代码的内置函数,但是在一些情况下,不得不在数据库层次提取一些去除了html代码的纯文本。
经过谷歌后,找到了以下函数,经测试,可用。第二个phpmyadmin 报错。navicat 可以以
SET GLOBAL log_bin_trust_function_creators=1;
DROP FUNCTION IF EXISTS fnStripTags;
DELIMITER |
CREATE FUNCTION fnStripTags( Dirty varchar(4000) )
RETURNS varchar(4000)
DETERMINISTIC
BEGIN
DECLARE iStart, iEnd, iLength int;
WHILE Locate( '<', Dirty ) > 0 And Locate( '>', Dirty, Locate( '<', Dirty )) > 0 DO
BEGIN
SET iStart = Locate( '<', Dirty ), iEnd = Locate( '>', Dirty, Locate('<', Dirty ));
SET iLength = ( iEnd - iStart) + 1;
IF iLength > 0 THEN
BEGIN
SET Dirty = Insert( Dirty, iStart, iLength, '');
END;
END IF;
END;
END WHILE;
RETURN Dirty;
END;
|
DELIMITER ;
SELECT fnStripTags('<p>this is a test, nothing more</p>');
CREATE FUNCTION `strip_tags`($str text) RETURNS text
BEGIN
DECLARE $start, $end INT DEFAULT 1;
LOOP
SET $start = LOCATE("<", $str, $start);
IF (!$start) THEN RETURN $str; END IF;
SET $end = LOCATE(">", $str, $start);
IF (!$end) THEN SET $end = $start; END IF;
SET $str = INSERT($str, $start, $end - $start + 1, "");
END LOOP;
END;
select strip_tags('<p>hello world again <strong>jack!</strong></p>');
mysql本身没有去除html代码的内置函数,但是在一些情况下,不得不在数据库层次提取一些去除了html代码的纯文本。
经过谷歌后,找到了以下函数,经测试,可用。第二个phpmyadmin 报错。navicat 可以以
SET GLOBAL log_bin_trust_function_creators=1;
DROP FUNCTION IF EXISTS fnStripTags;
DELIMITER |
CREATE FUNCTION fnStripTags( Dirty varchar(4000) )
RETURNS varchar(4000)
DETERMINISTIC
BEGIN
DECLARE iStart, iEnd, iLength int;
WHILE Locate( '<', Dirty ) > 0 And Locate( '>', Dirty, Locate( '<', Dirty )) > 0 DO
BEGIN
SET iStart = Locate( '<', Dirty ), iEnd = Locate( '>', Dirty, Locate('<', Dirty ));
SET iLength = ( iEnd - iStart) + 1;
IF iLength > 0 THEN
BEGIN
SET Dirty = Insert( Dirty, iStart, iLength, '');
END;
END IF;
END;
END WHILE;
RETURN Dirty;
END;
|
DELIMITER ;
SELECT fnStripTags('<p>this is a test, nothing more</p>');
CREATE FUNCTION `strip_tags`($str text) RETURNS text
BEGIN
DECLARE $start, $end INT DEFAULT 1;
LOOP
SET $start = LOCATE("<", $str, $start);
IF (!$start) THEN RETURN $str; END IF;
SET $end = LOCATE(">", $str, $start);
IF (!$end) THEN SET $end = $start; END IF;
SET $str = INSERT($str, $start, $end - $start + 1, "");
END LOOP;
END;
select strip_tags('<p>hello world again <strong>jack!</strong></p>');
相关文章推荐
- mysql字符串过滤掉HTML标签的函数
- asp.net过滤HTML标签的几个函数
- asp.net过滤HTML标签的几个函数
- php 过滤html标签的函数
- asp.net过滤HTML标签的几个函数
- js的replace 函数会过滤掉html标签
- Asp过滤指定html标签函数
- 过滤HTML标签的几个函数
- mysql 利用mysqldump 导入导出表结构、数据、存储过程及函数
- asp.net过滤HTML标签的几个函数
- ASP过滤特定HTML标签函数
- asp.net过滤HTML标签的几个函数
- SQL Server 中创建一个函数(过滤某个字段值里面的html标签)
- PHP 过滤html标签的函数
- asp.net过滤HTML标签的几个函数
- asp.net过滤HTML标签的几个函数
- 【转】利用 正则表达式 过滤掉 textarea ,textbox里的html标签
- asp.net过滤HTML标签的几个函数
- javascript利用正则表达式过滤HTML标签
- asp.net过滤HTML标签的几个函数