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
SET iStart = LOCATE('<', Dirty);
SET iEnd = LOCATE('>', Dirty, iStart);
SET iLength = (iEnd - iStart) + 1;
IF iLength > 0 THEN
SET Dirty = INSERT(Dirty, iStart, iLength, '');
END IF;
END WHILE;
RETURN Dirty;
END|
DELIMITER ;
SELECT fnStripTags('this is a test, nothing more');
CREATE FUNCTION strip_tags(str TEXT) RETURNS TEXT
BEGIN
DECLARE start_pos, end_pos INT DEFAULT 1;
LOOP
SET start_pos = LOCATE('<', str, start_pos);
IF !start_pos THEN RETURN str; END IF;
SET end_pos = LOCATE('>', str, start_pos);
IF !end_pos THEN SET end_pos = start_pos; END IF;
SET str = INSERT(str, start_pos, end_pos - start_pos + 1, '');
END LOOP;
END;
SELECT strip_tags('hello wo<>rld <again<.');
Test paragraph. Other text';
echo strip_tags($text); // 全部去除
echo strip_tags($text, '
輸出: Test paragraph.Test paragraph. Other text /