begin process at 2012 05 27 18:19:03
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > RECUPERER LES VARIABLES D'URL DANS UN TABLEAU.

RECUPERER LES VARIABLES D'URL DANS UN TABLEAU.


 Information sur la source

Note :
Aucune note
Catégorie :Chaîne de caratère Classé sous :urlrewriting, parseurl, url, parametres, parametre Niveau :Débutant Date de création :27/02/2006 Date de mise à jour :27/02/2006 17:27:49 Vu :14 334

Auteur : spottydj

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Cette fonction m'a beaucoup servi dans la réécriture dynamique des URL.

Retourne un tableau contenant les paramètres de l'URL avec pour indice le nom du paramètre. Si le paramètre demandé n'existe pas la valeur à son indice sera une chaîne vide.
Un paramètre optionel est une liste de paramètre dans un tableau. Vous y affectez les paramètres que vous voulez extraire de l'URL
Exemple
$url="fiche.php?type_doc=son&page=pa rticiper&id_info=2&popup=1";

$parametres[]="type_ doc";
$parametres[]="id_info";
$tab_parametres=par seUrl($url,$parametres);

le tableau sera uniquement composé de type_doc et id_info.

Si il n'est pas renseigné, la fonction renvoie tous les paramètres.

Si vous voulez récupérer l'ancre (fiche.php?type_doc=son&page=participer&id_info=2& popup=1#ancre) il suffit de demander le parametre "#" dans la liste de parametres. Il est renvoyé par défaut a l'indice # dans le tableau de retour.

Source

  • <?
  • /**
  • * @return string[]
  • * @param string $url
  • * @param string[] $parametres //liste des paramètres à extraire
  • * @desc Retourne un tableau contenant les paramètres de l'URL avec pour indice le nom du paramètre. Si le paramètre demandé n'existe pas la valeur à son indice sera une chaîne vide.
  • */
  • function parseUrl($url,$parametres=null)
  • {
  • $i=0;
  • $params=null;
  • //on ne garde que les paramètres de l'URL
  • $tmp_params=explode("?",$url);
  • if (count($tmp_params)>=2)
  • $tmp_params=$tmp_params[1];
  • else
  • $tmp_params="";
  • if ($tmp_params!="")
  • {
  • $ancre=explode("#",$tmp_params);
  • if (count($ancre)==2)
  • {
  • $tmp_params=$ancre[0];
  • $ancre=$ancre[1];
  • }
  • else
  • $ancre="";
  • //on isole les parametres
  • $tmp_params=explode('&',$tmp_params);
  • //On stocke dans un tableau les variables comprises dans l'URL.
  • //format du tableau :
  • //['id_lang'] => 1
  • //['id_rub'] => 27
  • //['id_art'] => 5
  • foreach ($tmp_params as $param)
  • {
  • $value=explode('=',$param);
  • if (count($value)>=2)
  • {
  • $params[$value[0]]=$value[1];
  • }
  • }
  • if ($parametres!=null)
  • {
  • $tmp_params=null;
  • //On stocke dans un tableau les variables comprises dans l'URL, demandées dans le tableau
  • //passé en paramètre.
  • //format du tableau :
  • //['id_lang'] => 1
  • //['id_rub'] => 27
  • //['id_art'] => 5
  • foreach ($parametres as $param)
  • {
  • //si il y a une ancre de demandée on l'ajoute
  • if ($param=='#')
  • $params["#"]=$ancre;
  • //si le parametre demandé n'existe pas on lui affecte une chaine vide.
  • if (!isset($params[$param]))
  • $params[$param]="";
  • $tmp_params[$param]=$params[$param];
  • }
  • $params=$tmp_params;
  • }
  • }
  • return $params;
  • }
  • ?>
<?
/**
* @return string[]
* @param string $url
* @param string[] $parametres //liste des paramètres à extraire
* @desc Retourne un tableau contenant les paramètres de l'URL avec pour indice le nom du paramètre. Si le paramètre demandé n'existe pas la valeur à son indice sera une chaîne vide.
*/
function parseUrl($url,$parametres=null)
{
	$i=0;
	$params=null;
	//on ne garde que les paramètres de l'URL
	$tmp_params=explode("?",$url);
	if (count($tmp_params)>=2)
		$tmp_params=$tmp_params[1];
	else
		$tmp_params="";
	if ($tmp_params!="")
	{
		$ancre=explode("#",$tmp_params);
		if (count($ancre)==2)
		{
			$tmp_params=$ancre[0];
			$ancre=$ancre[1];
		}
		else
			$ancre="";
		//on isole les parametres
		$tmp_params=explode('&',$tmp_params);
		//On stocke dans un tableau les variables comprises dans l'URL.
		//format du tableau :
		//['id_lang'] => 1
		//['id_rub'] => 27
		//['id_art'] => 5
		foreach ($tmp_params as $param)
		{
			$value=explode('=',$param);
			if (count($value)>=2)
			{
				$params[$value[0]]=$value[1];
			}
		}
		if ($parametres!=null)
		{
			$tmp_params=null;
			//On stocke dans un tableau les variables comprises dans l'URL, demandées dans le tableau
			//passé en paramètre.
			//format du tableau :
			//['id_lang'] => 1
			//['id_rub'] => 27
			//['id_art'] => 5
			foreach ($parametres as $param)
			{
				//si il y a une ancre de demandée on l'ajoute
				if ($param=='#')
					$params["#"]=$ancre;
				//si le parametre demandé n'existe pas on lui affecte une chaine vide.
				if (!isset($params[$param]))
					$params[$param]="";
				$tmp_params[$param]=$params[$param];
			}
			$params=$tmp_params;
		}

	}
return $params;
}
?>



 Historique

27 février 2006 17:27:50 :
Correction pour améliorer la coloration syntaxique..

 Sources de la même categorie

ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET par Dariumis
Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE par tefa24600
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz
Source avec Zip Source avec une capture CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGE par Salva9473

 Sources en rapport avec celle ci

Source avec Zip CREATED SOME TINY URL par ledamss
VÉRIFICATION DES URL VALIDE AVEC PHP par dilar
REDIRECTION D'URL par bonhommecrea
CACHER SES LIENS DE L'URL par cod57
LISTER DES LIENS / URLS DEPUIS UN TEXTE par gmni

Commentaires et avis

Commentaire de manouille le 28/02/2006 08:59:35

Heuuuu t'as pas l'air au courant mais $_GET['mavariableURL'] ca marche bien aussi, et c'est plus court à écrire ;-)

Pour reprendre ton exemple :
$url="fiche.php?type_doc=son&page=participer&id_info=2&popup=1";
echo $_GET['type_doc']; //affiche 'son'
echo $_GET['id_info']; //affiche '2'

Enjoy :))

Commentaire de malalam le 28/02/2006 09:56:00 administrateur CS

D'autant plus qu'il y a beaucoup plus simple. UN exemple sans expression régulière parce que j'avais la flemme :
<?php
$url = 'fiche.php?type_doc=son&page=participer&id_info=2&popup=1#ancre';
$aUrl = parse_url ($url);
$aTab = explode ('&', $aUrl['query']);
$aUrl['query'] = array ();
foreach ($aTab as $clef => $val) {
$aTmp = explode ('=', $val);
echo $aTmp[0], '<br />';
$aUrl['query'][$clef]['variable'] = $aTmp[0];
$aUrl['query'][$clef]['valeur'] = $aTmp[1];
}
echo '<pre>', print_r ($aUrl), '</pre>';
?>

Commentaire de Palleas_44 le 28/02/2006 12:07:47

Mais $_GET à la base c'est un tableau donc tu peux tout recuperer avec foreach nan ?

Commentaire de malalam le 28/02/2006 12:12:18 administrateur CS

Oui, sauf dans le cadre d'une url passée à la fonction. Pas l'url courante, quoi.
Parce que si on s'en tient à l'url courante, en effet, ce code est encore plus inutile.

Commentaire de Palleas_44 le 28/02/2006 12:41:18

ah ui j'avais pas noté que ca venait d'une fonction :$ Mais ouais désolé pour le créateur mais ce script mangerait des ressources pour rien ^^

Commentaire de spottydj le 28/02/2006 13:28:05

Bon vous avez pas compris

"Cette fonction m'a beaucoup servi dans la réécriture dynamique des URL."
Cas réel : un site web entier, je dois y implanter URL Rewriting.
Dans le site, les URL sont créées sous cette forme
fiche.php?type_doc=son&page=participer&id_info=2&popup=1#ancre
Je dois les transformer en
fiche/son.participer.le-titre-du-document.2.1.php

C'est à partir d'une chaine qu'on récupère les paramètres, et pas de l'URL que le client appelle...
Je ne sais pas comment mieux m'exprimer...

Pour la complexité, y a 2 cas, un avec le choix des paramètres, l'autre non, et y a la gestion de l'ancre aussi.

Essayez de copmrendre exactement à quoi sert le script avant de me prendre pour un idiot, je sais que $_GET[] existe !

En esperant avoir été compris.

Commentaire de manouille le 28/02/2006 13:36:34

Désolé mais mon commentaire n'avais pas pour but de te prendre pour un idiot, ni pour quoi que ce soit d'autre d'ailleur.
Son but était soit de te (et a d'autre par la même occasion) faire comprendre quelque chose et/ou bien de comprendre ce que tu as fait.

Visiblement je ne suis pas le seul à ne pas avoir compris le but de ton script, maintenant c'est plus clair...

Comme quoi ce fut utile ;-)

Commentaire de malalam le 28/02/2006 13:51:49 administrateur CS

J'avais bien compris, et si tu testes mon code, tu verras qu'il te renvoie exactement ce que tu veux (et même un peu plus à dire vrai). Et avec une expression régulière en lieu et place de mes deux explode (je le répête, j'avais la flemme), le code serait encore plus court.
Je ne te prends pas pour un idiot, je te montre que ta fonction fait double emploi avec parse_url () (qui est une fonction interne PHP), moyennant 2-3 lignes de code en plus...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Recup URL avec parametres [ par vincenteraptor ] UGH!Comment ca roule sur ce forum ?????J ai un petit pb ! Je voudrais récupérer l'url entière de ma page phpdans une chaine de caracteres, c est a dir urlrewriting htaccess free [ par rockclimber ] Voila, je m'explique : J'aimerais que mon site chez free g&#232;re l'url-rewriting. Pour cela je passe par l'erreur 404, donc je redirige dans mon fi parametre url [ par xzonz ] salut a toutes et tous voila j'ai un souci avec une url (déja bien chargée ) que voici:echo "&lt;a href=".$url."admin/delfic.php?param=".rea comment savoir les nom des parametres passes dans URL? [ par salasalasala ] jai recu les parametre dans une url,mais le problemes qu ils sont pas fixe ils se varient selon les champs du text qui ont ete remlpis,jai pu compter formulair avec un url d'envoi [ par salasalasala ] Bonjour j'aimerai savoir si il serait possible de récuperer les valeurs d'un champs sans faire un submit. Je m'explique, je veux passer les valeur Decalage avec internet explorer 6 [ par maxetime ] Bonjour à tous, j'ai fait une modification récentes sur un site web et cela crée un décalage d'une image dans internet explorer 6 seulement. L'image Mise à jour des variables SESSIONS non effectuée [ par alaska749 ] Bonjour, Je galère sur un problème sur lequel j'aurais besoin de vos avis, idées, conseils... bref tout commentaire constructif est le bienvenu [^^cl probleme avec l'url [ par Malamute7 ] bonsoir, je creer un site internet en utilisant wamp serveur. j'utilise des balise div avec des feuilles de styles css. il me reste a créer les liens Probleme Rewriting pour plusieus URL [ par yatoo ] Bonjour à tous, Je vous contact car je fais un site pour les voyages et j'ai une partie qui donne les infos sur les pays. Aussi, afin que mon site s récupérer url et faire correspondre dans base de données [ par nathmfl ] Bonjour à tous. Voici un petit moment que je suis bloquée ... je ne suis pas du tout experte, alors veuillez m'excuser si ma question à l'air futil .


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales