MySQL removehtml是一種用于將HTML標(biāo)記從文本中刪除的函數(shù)。在數(shù)據(jù)庫中,很多時(shí)候我們需要處理用戶輸入的文本,防止惡意輸入導(dǎo)致安全漏洞,也需要將特殊字符處理成正常文本,以免數(shù)據(jù)庫操作出錯(cuò)。
在處理用戶輸入的文本時(shí),有些用戶會添加HTML標(biāo)記,比如a標(biāo)記、img標(biāo)記等,這些標(biāo)記會破壞我們網(wǎng)站的布局,還會增加安全風(fēng)險(xiǎn)。因此,使用removehtml函數(shù)可以很方便地將這些標(biāo)記刪除。
DELIMITER ;; CREATE FUNCTION removehtml(str TEXT) RETURNS TEXT BEGIN DECLARE iStart, iEnd INT DEFAULT 1; DECLARE sub TEXT DEFAULT ""; WHILE iStart >0 DO SET iStart = LOCATE("<", str, iStart); SET iEnd = LOCATE(">", str, iStart); IF iStart >0 THEN SET sub = CONCAT(sub, SUBSTRING(str, iStart, iEnd - iStart + 1)); SET iStart = iEnd + 1; END IF; END WHILE; RETURN REPLACE(str, sub, ""); END ;; DELIMITER ;
上述的代碼是MySQL removehtml函數(shù)的實(shí)現(xiàn)。我們定義了一個(gè)名為removehtml的函數(shù),傳入?yún)?shù)為文本類型的str。在函數(shù)內(nèi)部,我們使用了兩個(gè)變量iStart和iEnd用來記錄HTML標(biāo)記的起始位置和結(jié)束位置。然后使用WHILE循環(huán),找到所有的HTML標(biāo)記,將其存儲到sub變量中。最后通過REPLACE函數(shù)將所有的HTML標(biāo)記替換成空字符串,即可得到不含HTML標(biāo)記的純文本。
上一篇mysql repair
下一篇css始終最右邊