1.方法一
DROP FUNCTION IF EXISTS fnStripTags;
DELIMITER |
CREATE FUNCTION fnStripTags( Dirty text CHARSET utf8)
RETURNS text CHARSET utf8
DETERMINISTIC
BEGIN
DECLARE iStart, iEnd, iLength int;
WHILE Locate( ' 0 And Locate( '>', Dirty, Locate( ' 0 DO
BEGIN
SET iStart = Locate( '', Dirty, Locate('
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 ;
2.方法二:
DROP FUNCTION IF EXISTS del_script_tags;
CREATE FUNCTION `del_script_tags`($str mediumtext) RETURNS mediumtext
BEGIN
DECLARE $start, $end INT DEFAULT 1;
LOOP_SCRIPT: LOOP
SET $start = LOCATE("
SET $end = LOCATE("", $str, $start);
IF (!$end) THEN SET $end = $start; END IF;
SET $str = INSERT($str, $start, $end - $start + 9, '');
END LOOP;
SET $start = 1;
SET $end = 1;
LOOP_STYLE: LOOP
SET $start = LOCATE("
SET $end = LOCATE("", $str, $start);
IF (!$end) THEN SET $end = $start; END IF;
SET $str = INSERT($str, $start, $end - $start + 8, '');
END LOOP;
SET $start = 1;
SET $end = 1;
LOOP
SET $start = LOCATE("
IF (!$start) THEN RETURN TRIM(REPLACE(REPLACE($str, CHAR(10), ''),' ','')); 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;