Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Contribuez
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/08/2008, 16h37   #1
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Par défaut [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 :
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2008, 11h43   #2
Expert Confirmé
 
Avatar de Alain Defrance
 
Homme Alain DEFRANCE
Project Lead
Inscription : août 2007
Messages : 1 993
Détails du profil
Informations personnelles :
Nom : Homme Alain DEFRANCE
Âge : 24
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Project Lead

Informations forums :
Inscription : août 2007
Messages : 1 993
Points : 2 919
Points : 2 919
Envoyer un message via MSN à Alain Defrance Envoyer un message via Skype™ à Alain Defrance
Bonjour,

C'est intéressant, mais la FAQ n'est pas forcement approprié pour publier cela, ce n'est pas le rôle du blog non plus.

Pense tu qu'il serait utile de rédiger un court article expliquant comment cette fonction a été pensé ?
Ça fournirais a la fois la fonction, et la logique de fonctionnement qui servira d'apprentissage a certain.
__________________
http://alaindefrance.wordpress.com - http://www.alain-defrance.com
Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
Project Lead eXo Social
Java Black Belt - Java Black Belt Coach
Alain Defrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2008, 10h33   #3
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Salut !

J'ai un peu été devancé. Crois-tu qu'il serait toujours intéressant d'en faire un article (cela dit, avec le peu de temps que j'ai en ce moment il ne serait pas pour dans les jours qui viennent) ou on le laisse en Sources ?
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2008, 13h14   #4
Expert Confirmé
 
Avatar de Alain Defrance
 
Homme Alain DEFRANCE
Project Lead
Inscription : août 2007
Messages : 1 993
Détails du profil
Informations personnelles :
Nom : Homme Alain DEFRANCE
Âge : 24
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Project Lead

Informations forums :
Inscription : août 2007
Messages : 1 993
Points : 2 919
Points : 2 919
Envoyer un message via MSN à Alain Defrance Envoyer un message via Skype™ à Alain Defrance
De toute manière cette fonction sera intégré a la page source, mais rien n'empêche d'en faire un article
C'est toujours intéressant d'avoir un article, même si ici ça serait très spécialisé, il permettrait de bien expliquer aux utilisateurs de la fonction comment elle a été construite et donc donner un exemple concret de création d'une fonction.
__________________
http://alaindefrance.wordpress.com - http://www.alain-defrance.com
Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
Project Lead eXo Social
Java Black Belt - Java Black Belt Coach
Alain Defrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h58.


 
 
 
 
Partenaires

Hébergement Web