Ajax HTML 5 JavaScript Création site CMS Comment Design Logiciels Programmation RSS SQL Scripts Mobiles
Forum
COMMENT FAIRE
Anti Safari
Localiser portable
Galerie d'images
Redirection
Google Maps
Ecrire pour le Web
Passer intro video
CONCEPTION
Approche Ajax
Lecteur RSS
Bases SEO
DESIGN
Tutoriel Adsense
Essentiel Web design
SCRIPTS
Outils en ligne
FTP Synchronizer


PHP: Comment parser une URL

Comment obtenir les éléments d'une URL, et les paramètres éventuellement associés?

Deux cas peuvent se présenter: soit l'URL est dans une chaîne de caractère et on veut en retrouver les éléments, soit il s'agit d'un script Web lancé pour traiter les données d'une formulaire par la méthode POST, dont on veut récupérer les données.

Pour parser une URL dans une chaîne, deux fonctions seront utiles, parse_url et parse_str. La première décompose une URL en éléments comme Location en JavaScript, la seconde décompose une chaîne de paramètres en variable et valeurs.

Comparaison avec JavaScript

La fonction parse_url à pour équivalent l'objet Location en JavaScript. Les clés du tableau associatif sont remplacées par les propriétés de l'objet Location.

L'URL complète s'obtient avec la constante __FILE__ qui est globale et n'appartient pas au tableau généré par parse_url.

Données
PHP
JavaScript
URL complète
__FILE__
location.href
Protocole (http)
scheme
protocol
Domaine
host
hostname
Répertoire et fichier
path
pathname
Ancre dans la page
fragment
hash
Paramètres
query
search
Port
-
port
Login
user
-
Mot de passe
pass
-
Tableau d'équivalence PHP - JavaScript

Autres différences:

  • Si l'on ajoute à la fois une ancre interne et des paramètres, ce qui n'est pas correct, l'ensemble sera associé à hash en JavaScript et à query en PHP.
  • En JavaScript le protocole inclut les deux points, comme dans http: mais pas en PHP.

Utilisation de la fonction parse_url

Exemple:

$url = "http://www.scriptol.fr/comment/parser-url.php#content";
$arr = parse_url($url)
print_r($arr);

On obtient un tableau associatif où les clés sont détaillées dans le tableau précédent.

array(
"scheme" => http,

"host" => www.scriptol.fr,
"path" => /comment/parser-url.php,
"fragment" => content
)

Utilisation de la fonction parse_str

Exemple:

$parameters = $arr["query"];

parse_str($parameters, $data);
print_r($data);

$data est un tableau associatif, ou les clés sont les variables passées en paramètres, et les valeurs, le contenu de ces variables.

Par exemple:

fichier.php?nom=untel&numero=50

Le tableau généré sera:

array(
"nom" => untel,
"numero" => 50
)

Sources et téléchargement

  • Code source du script en ligne.
  • Code source du script local.
  • Archive contenant les sources et une page de démonstration.

Deuxième partie: Retrouver les informations sur une page Web et les données d'un formulaire.

Tweet
© 2008-2011 Scriptol.fr