[SRC] url_decode() pour MySQL
Voilà une petite fonction de décodage, pour un texte encodé par rawurlencode de PHP par exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| CREATE FUNCTION url_decode( texte TEXT ) RETURNS TEXT
BEGIN
SET @i = 1;
SET @new_texte = texte;
REPEAT
BEGIN
SET @sub = SUBSTRING( @new_texte, @i, 3 );
IF LENGTH( @sub ) > 2 THEN
BEGIN
IF @sub REGEXP '^%[A-Fa-f0-9]{2}$' THEN
BEGIN
SET @char_convert = CHAR( CONV( SUBSTRING( @sub, 2 ), 16, 10 ) );
SET @texte_deb = SUBSTRING( @new_texte, 1, @i - 1 );
SET @texte_fin = SUBSTRING( @new_texte, @i + 3 );
SET @new_texte = CONCAT( @texte_deb, @char_convert, @texte_fin );
END;
END IF;
END;
END IF;
SET @i = @i + 1;
END;
UNTIL LENGTH( @sub ) <= 2 END REPEAT;
RETURN @new_texte;
END |
Appel :
Code:
SELECT url_decode( 'http%3A%2F%2Fwww.google.fr%2Fsearch%3Fsource%3Dig%26q%3Ddu%2Btexte' )
Résultat :