Comparaison URL PHP

cs_vargas Messages postés 42 Date d'inscription samedi 14 juin 2003 Statut Membre Dernière intervention 10 juin 2013 - 12 mars 2012 à 13:57
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 - 15 mars 2012 à 17:02
Bonjour tout le monde

J'ai une question toute bête, mais je ne trouve pas la solution. Voila j'ai besoin de comparer deux URL pour faire une condition (IF).

mon premier URL est : http://www.724marketing-clients.com/nectar/gestion.php
et l'autre est : http://www.724marketing-clients.com/nectar/gestion.php?no_tache=14

Si quelqu'un connait une astuce qui pourrais régler mon problème.

merci beaucoup à tous

3 réponses

dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012
12 mars 2012 à 15:20
Salut,

En imaginant que tu as stocké ta première URL, tu peux récuperer l'url de ta page courante et ses paramètres :
$current_page_URL = $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];


Après, vu que c les 2 meme URL, sauf que la 2eme à un paramètre, si c juste pour savoir s'il y a un paramètre à la fin de ton URL (et que tu connais son nom) tu peux juste faire :
if(isset($_GET['no_tache']) echo"il y a un paramètre";

isset détermine si la $GET['no_tache'] est définie et est différente de NULL
0
pmcoste Messages postés 72 Date d'inscription mercredi 7 février 2007 Statut Membre Dernière intervention 25 juillet 2013 1
15 mars 2012 à 14:52
Bonjour,

Une autre solution consiste à récupérer l'URL passée avant les paramètres (c'est-à-dire avant le caractère '?') :

<?php
class str
{
   public static function before($name, $sep=' ')
   {
      $aTmp=explode($sep, $name);
      return count($aTmp)>1 ? $aTmp[0] : $name;
   }
}
 //Avec tes deux chaines de caractères suivantes :
$stringUrl1='http://www.724marketing-clients.com/nectar/gestion.php';
$stringUrl2='http://www.724marketing-clients.com/nectar/gestion.php?no_tache=14';

$booleanIsEquals=strtolower(str::before($stringUrl1, '?')) == strtolower(str::before($stringUrl2, '?'));

if($booleanIsEquals) {
    echo 'les URL sont identiques';
}
else {
    echo 'les URL sont différentes';
}




---------------------
Oderint dum metuant
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
15 mars 2012 à 17:02
Salut,

@pmcoste : Au lieux de réinventer la roue carrée tu peux utiliser parse_url(). Et sinon, l'objet c'est bien, mais en faire juste pour pour dire qu'on en fais... non quoi. Clairement ici ça n'apporte rien, ça complique même inutilement le code, surtout que la manière dont c'est fait n'a rien d'objet du tout.
0
Rejoignez-nous