WarDrome Sci-fi MMORPG
WarDrome Sci-fi MMORPG

Funzione strip_tags in Mysql

Avevo necessità di cercare in una tabella delle frasi formattate in html, e temevo di dover scaricare la tabella in questione e poi farne il parsing, quando invece ho trovato la soluzione in MySql:

delimiter ||
 
DROP FUNCTION IF EXISTS strip_tags||
CREATE FUNCTION strip_tags( x longtext) RETURNS longtext
LANGUAGE SQL NOT DETERMINISTIC READS SQL DATA
BEGIN
DECLARE sstart INT UNSIGNED;
DECLARE ends INT UNSIGNED;
SET sstart = LOCATE('<', x, 1);
REPEAT
SET ends = LOCATE('>', x, sstart);
SET x = CONCAT(SUBSTRING( x, 1 ,sstart -1) ,SUBSTRING(x, ends +1 )) ;
SET sstart = LOCATE('<', x, 1);
UNTIL sstart < 1 END REPEAT;
return x;
END;
||
delimiter ;

Ed ecco un esempio d’uso:

SELECT strip_tags('<a href="HelloWorld.html"><B>Hello, world!</B></a>') as strip_tags;

Ringrazio l’autore della funzione Stephen Gornick, per l’aiuto.
Ovviamente meglio non usarla su tabelle con milioni di record :-)

1 Comment

CristianFebruary 7th, 2010 at 16:15

Non male, bookmarko in caso mi servisse :)

Leave a comment

Your comment

Connect with Facebook