Sources MySQLConsultez toutes les sources

Nombre d'auteurs : 10, nombre de sources : 21, dernière mise à jour : 9 octobre 2010 

 
OuvrirSommaireChaînes de caractères
précédentsommairesuivant
 
 

Voici une fonction utilisateur équivalente à la fonction url_encode de PHP :

Script de création de la fonction
Sélectionnez

DELIMITER $$

DROP FUNCTION IF EXISTS url_encode;$$
CREATE FUNCTION  url_encode(original_text TEXT) RETURNS TEXT
BEGIN
	DECLARE new_text TEXT DEFAULT NULL;
	DECLARE current_char VARCHAR(10) DEFAULT '';
	DECLARE pointer INT DEFAULT 1;

	IF (original_text IS NOT NULL) THEN
    SET new_text = '';
    WHILE (pointer < LENGTH(original_text)) DO
		SET current_char = MID(original_text, pointer, 1);
        IF (current_char = ' ') THEN
			SET current_char = '+';
        ELSEIF (NOT
		(ASCII(current_char) BETWEEN 48 AND 57
		|| ASCII(current_char) BETWEEN 65 AND 90
		|| ASCII(current_char) BETWEEN 97 AND 122)
		) THEN
			SET current_char = concat("%",lpad(conv(ascii(current_char),10,16),2,0));
		END IF;
		SET new_text = CONCAT(new_text, current_char);
        SET pointer = pointer + 1;
        END WHILE;
    END IF;

    RETURN new_text;
END;$$

DELIMITER ;
				
Exemple d'utilisation
Sélectionnez

SELECT url_encode('http://www.google.fr/search?source=ig&q=du+texte');
				
Nous obtenons en sortie
Sélectionnez

http%3A%2F%2Fwww.google.fr%2Fsearch%3Fsource%3Dig%26q%3Ddu%2Btexte
				
Créé le 20 août 2008  par Garrett Hill

Téléchargez le zip

Voici une fonction utilisateur équivalente à la fonction url_decode de PHP :

Script de création de la fonction
Sélectionnez

DELIMITER $$

DROP FUNCTION IF EXISTS url_decode;$$
CREATE FUNCTION url_decode(original_text TEXT) RETURNS TEXT
BEGIN
	DECLARE new_text text default null;
	DECLARE pointer int default 1;

	SET new_text = REPLACE(original_text, '+', ' ');
	WHILE (LOCATE("%",new_text,pointer) <> 0 ) && (pointer < length(new_text)) DO
		SET pointer = LOCATE("%",new_text,pointer);
		SET new_text = CONCAT(
			LEFT(new_text, pointer - 1)
			, CHAR(CONV(MID(new_text, pointer + 1, 2), 16, 10))
			, RIGHT(new_text, LENGHT(new_text) - (pointer+2)));
		SET pointer = pointer + 1;
	END WHILE;

	RETURN new_text; 
END;$$

DELIMITER ;
				
Exemple d'utilisation
Sélectionnez

SELECT url_encode('http%3A%2F%2Fwww.google.fr%2Fsearch%3Fsource%3Dig%26q%3Ddu%2Btexte');
				
Nous obtenons en sortie
Sélectionnez

http://www.google.fr/search?source=ig&q=du+texte
				
Créé le 20 août 2008  par Garrett Hill

Téléchargez le zip

Voici une fonction utilisateur équivalente à la fonction url_decode de PHP :

Script de création de la fonction
Sélectionnez

DELIMITER $$

DROP FUNCTION IF EXISTS url_decode;$$
CREATE FUNCTION url_decode(p_text TEXT) RETURNS TEXT
BEGIN
  
	DECLARE i INT DEFAULT 1;
	DECLARE new_texte TEXT DEFAULT p_text;
	DECLARE texte_deb TEXT;
	DECLARE texte_fin TEXT;
	DECLARE convertion TEXT;
	DECLARE sub TEXT;
  
	REPEAT
		SET sub = SUBSTRING(new_texte, i, 3);
		IF (LENGTH( sub ) > 2) THEN
      		IF (sub REGEXP '^%[A-Fa-f0-9]{2}$') THEN
          		SET convertion = 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, convertion, texte_fin );
      		END IF;
  		END IF;
      	SET i = i + 1;
      
  	UNTIL (LENGTH( sub ) <= 2) END REPEAT; 
  
  RETURN new_texte;
  
END;$$

DELIMITER ;
				
Exemple d'utilisation
Sélectionnez

SELECT url_encode('http%3A%2F%2Fwww.google.fr%2Fsearch%3Fsource%3Dig%26q%3Ddu%2Btexte');
				
Nous obtenons en sortie
Sélectionnez

http://www.google.fr/search?source=ig&q=du+texte
				
Créé le 20 août 2008  par Josselin Willette

Page de l'auteur
Téléchargez le zip

Voici une fonction utilisateur équivalente à la fonction REPLACE mais insensible à la casse :

Script de création de la fonction
Sélectionnez

DELIMITER $$

DROP FUNCTION IF EXISTS replace_ci;$$
CREATE FUNCTION replace_ci(str TEXT, needle CHAR(255), str_rep CHAR(255))
    RETURNS TEXT
    DETERMINISTIC
    BEGIN
        DECLARE return_str TEXT DEFAULT '';
        DECLARE lower_str TEXT;
        DECLARE lower_needle TEXT;
        DECLARE pos INT DEFAULT 1;
        DECLARE old_pos INT DEFAULT 1;

        SELECT LOWER(str) INTO lower_str;
        SELECT LOWER(needle) INTO lower_needle;
        SELECT LOCATE(lower_needle, lower_str, pos) INTO pos;
        WHILE (pos > 0) DO
            SELECT CONCAT(return_str, substr(str, old_pos, pos-old_pos), str_rep) INTO return_str;
            SELECT pos + CHAR_LENGHT(needle) INTO pos;
            SELECT pos INTO old_pos;
            SELECT LOCATE(lower_needle, lower_str, pos) INTO pos;
        END WHILE;
        SELECT CONCAT(return_str, SUBSTR(str, old_pos, char_length(str))) INTO return_str;
        RETURN return_str;
END$$

DELIMITER ;
				
Exemple d'utilisation
Sélectionnez

SELECT replace_ci('mySQL', 'M', 'M');
				
Nous obtenons en sortie
Sélectionnez

MySQL
				
Créé le 20 août 2008  par Gary Pendergast

Téléchargez le zip

précédentsommairesuivant
 
 
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2004 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.