Suppression des balises HTML des enregistrements de base de données
Dans MySQL, la suppression des balises HTML d'une colonne spécifique peut être réalisée à l'aide de techniques spécifiques. Considérez les données suivantes :
SELECT * FROM table WHERE colmn_name ` like '%mytext%'
Cette requête renvoie les quatre lignes même si seule la ligne 3 contient « montexte » dans le contenu. Pour obtenir le résultat souhaité, ligne 3 uniquement, une approche plus précise est nécessaire.
Une solution consiste à utiliser une fonction définie par l'utilisateur (UDF) pour supprimer les balises HTML. Voici un exemple :
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 BEGIN SET iStart = Locate( '<', Dirty ), iEnd = Locate( '>', Dirty, Locate('<', Dirty )); 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 ;
Cette fonction, fnStripTags(), localise et supprime de manière itérative toutes les balises HTML de la chaîne d'entrée donnée. Il peut être utilisé dans une requête comme suit :
SELECT * FROM table WHERE fnStripTags(colmn_name) LIKE '%mytext%'
Cette requête révisée renverra uniquement la ligne 3, qui contient "montexte" dans son contenu non HTML.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!