Funzione strip_tags in MySQL [PILLOLA]

Hai presente quella funzione di PHP chiamata strip_tags?

This function tries to return a string with all NULL bytes, HTML and PHP tags stripped from a given str. It uses the same tag stripping state machine as the fgetss() function…

Grazie a questa funzione, in sostanza, è possibile “ripulire” da tutti gli eventuali tag HTML e PHP una stringa passatagli come parametro.
Ma che c’entra con MySQL? Ecco… MySQL offre molte funzioni, ma questa non ce l’ha… e allora noi la creiamo.
Facendo qualche ricerca e testando un paio di soluzioni, ho trovato questa che sembra fare al caso mio.

La funzione strip_tags in MySQL:

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;

Una volta creata possiamo impiegarla nelle nostre query:

select
    id
    titolo
    strip_tags(contenuto_html) html_strippato,
    altro_campo
FROM
    tabella

Spero possa esserti utile.

Potrebbero interessarti anche...