Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
932 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Extraire une partie d'une url

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Extraire une partie d'une url

n°1843927
sneakz
Posté le 27-01-2009 à 22:44:29  profilanswer
 

Bonsoir,
 
Je cherche à extraire une partie d'une url.
 
<?php
$url = "https://192.168.1.100/site1/index.php?tg=dms/14/main&idx=frame&id_app=2";
...
 
N'étant pas très fort dans les regex, j'aimerai pouvoir extraire https://192.168.1.100/site1/ sachant que le nom du site (dans mon exemple site1) change dans l'url.
 
Merci bien pour votre aide.


Message édité par sneakz le 27-01-2009 à 22:45:10
mood
Publicité
Posté le 27-01-2009 à 22:44:29  profilanswer
 

n°1843946
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 27-01-2009 à 23:27:38  profilanswer
 

$url_explode = explode($url, '/');
 
echo $url_explode[3];

n°1843994
sneakz
Posté le 28-01-2009 à 08:29:15  profilanswer
 

Merci fodger pour cette réponse.
 
La syntaxe est plutôt : $url_explode = explode('/',$url);
 
Mais ce n'est pas tout à fait ce que je veux dans la mesure où ici cela me retournera la sous-chaine numéro 3 soit site1 dans mon exemple.
Or je voudrais en sortie  https://192.168.1.100/site1/
 
Un moyen serait de concaténer les sous-chaines en y ajoutant / avec toute la difficulté à gérer le proto.

n°1844011
sneakz
Posté le 28-01-2009 à 09:13:53  profilanswer
 

J'ai pensé à ceci mais il y a peut-être plus simple :
 

Code :
  1. <?php
  2. $url = 'https://192.168.1.100/site1/index.php?tg=dms/14/main&idx=frame&id_app=2';
  3. $url = parse_url($url);
  4. $url = $url['scheme']."://".$url['host'].dirname($url['path'])."/";
  5. echo $url;
  6. ?>

n°1844119
macgawel
Posté le 28-01-2009 à 11:49:17  profilanswer
 

Code :
  1. function test_preg($data) {
  2.     if ( preg_match ( "@^(?:https://)?([^/]+)/([^/]+)@", $data, $matches) )
  3.         return $matches[0];
  4. }


"@^https://([^/]+)/([^/]+)/@" => Délimiteur. Ce qui est à l'intérieur, c'est l'expression régulière.
^https:// => Commence par https://
([^/]+) => N'importe quelle chaîne de caractères quelconques SAUF /
 
Donc, on prend une chapine qui commence par https://, qui est suivie d'une chaîne sans / (192.168.1.100), puis d'un /, et qui termine par une chaîne sans / (site1)

n°1844262
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 28-01-2009 à 15:33:30  profilanswer
 

sneakz a écrit :

Merci fodger pour cette réponse.
 
La syntaxe est plutôt : $url_explode = explode('/',$url);
 
Mais ce n'est pas tout à fait ce que je veux dans la mesure où ici cela me retournera la sous-chaine numéro 3 soit site1 dans mon exemple.
Or je voudrais en sortie  https://192.168.1.100/site1/
 
Un moyen serait de concaténer les sous-chaines en y ajoutant / avec toute la difficulté à gérer le proto.


 
dsl la fatigue :p. Dans ce cas, comme te le dis mac, les expressions régulières sont toutes indiquées.

n°1844275
sneakz
Posté le 28-01-2009 à 16:15:38  profilanswer
 

Merci bien macgawel pour cette fonction et surtout pour les éléments explicatifs.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Extraire une partie d'une url

 

Sujets relatifs
[Access] - l'expression ne fait pas partie de la fonction d'agregatextraire les liens d'une page web html
Extraire des chaines de caractèresExtraire des données d'une page Web en fonction d'un champ formulaire
Extraire une partie d'un fichier texteextraire une partie d'un fichier
Extraire une partie d'une chaine de caractère[Java] Extraire une partie d'image
SQL - Extraire une partie d'une valeur[SQL] requete pour extraire une partie de la chain de de resultat
Plus de sujets relatifs à : Extraire une partie d'une url


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR