Analyser des adresses URL avec parse_url dans PostgreSQL

Note: La version 1.1 est sortie.

Note: voir la page du projet

Si vous stockez des adresses URL dans votre base de données, il est possible que vous souhaitiez récupérer des données de celles-ci comme le nom de domaine, le path qui correspond à /dossier/fichier.html par exemple, les paramètres envoyés, etc… Pour ça, il fallait auparavant utiliser par exemple une fonction Pl/Sh pour demander à un script PHP tel ou tel champ de l’URL, analysée avec la fonction parse_url de PHP.

Maintenant, il en est tout autrement ! 😉 Basée sur la fonction parse_url de PHP, j’ai codé une simple petite fonction parse_url utilisable à partir de PostgreSQL 8.4. Dans ce module “parse_url”, il y a:

  • Une fonction parse_url (text) qui retourne un record. Elle prend pour argument une adresse URL sous une forme texte et retourne un record nommé “url_record” défini par ("scheme" text, "user" text, "pass" text, "host" text, "port" integer, "path" text, "query" text, "fragment" text)
  • Une fonction parse_url (text, text) qui retourne une valeur texte correspondant au champ nommé dans le second argument. Le champ peut être:
    • scheme: Le schéma de l’adresse URL. (http, https, ftp…)
    • user: Le nom d’utilisateur si fourni
    • pass: Le mot de passe si fourni
    • host: Le nom de domaine
    • port: Le port de connexion si spécifié
    • path: L’adresse du fichier par rapport au nom de domaine
    • query: Les paramètres URL envoyés
    • fragment: Le contenu situé après “#”

Téléchargement de la librairie parse_url

Pour télécharger la librairie parse_url, rien de plus simple. Il vous suffit de télécharger le fichier compressé des sources de la version 1 de la librairie de gestion des URL pour PostgreSQL dans la gestionnaire de tâches de D-Sites à cette adresse:

Installation de la librairie

Pour installer la librairie, il vous suffit d’utiliser le Makefile déjà présent ; une fois dans le répertoire de la librairie, faites (en super-utilisateur) :

Et en toute logique, la librairie est installée. Sinon, faites uniquement make pour la compiler puis éxécutez le contenu de parse_url.sql.in en remplace MODULE_PATHNAME par l’emplacement du fichier parse_url.so.

Quelques exemples de résultats

N’hésitez pas à me faire un retour sur votre utilisation, à signaler des bugs ou à soumettre des idées d’amélioration dans le gestionnaire de tâches.

facebooktwittergoogle_plusredditpinterestlinkedinmail

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">