Récupération de données dans url

WRInaute discret
Bonjour,

Malgé toutes mes recherches dans le forum et grâce à l'ami Google, je ne suis pas arrivé à solutionner mon problème.

Dans une url, je voudrai récupérer une partie de variable.

exemple : h**p://www.monsite.com/recherche_vols.php?type=1&departAllerData=v:5580|c:pAR|t:paris&arriveeAllerData=v:5275|c:NYC|t:New York

J'arrive à récupérer les variables &departAllerData et &arriveeAllerData mais, en fait, je voudrai surtout récupérer Paris et New York

J'ai vu qu'on pouvait utiliser des regex mais je suis nul sur le sujet.

Si quelqu'un a une idée, je suis preneur et je l'en remercie par avance
 
WRInaute occasionnel
précise le langage sur lequel tu travaille, sinon on ne peux pas donnée de solution.

Car il existe plusieur solution, les regex, mais si tu n'as pas a lèse avec, tu peux faire du découpage si tu peux repérer le dernier : il suffit de récupérer la ligne après, si tu n'as presque aucune fonction, tu peux faire une lecture caractère après caractère.
 
WRInaute accro
Je suis nul en regex aussi, quasi jamais besoin:
PHP:
<span class="syntaxdefault"><br /></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br /></span><span class="syntaxcomment">//&nbsp;test.php?type=1&departAllerData=v:5580|c:PAR|t:Paris&arriveeAllerData=v:5275|c:NYC|t:New%20York<br /><br /></span><span class="syntaxdefault">$departAllerData&nbsp;</span><span class="syntaxkeyword">=&nbsp;isset(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'departAllerData'</span><span class="syntaxkeyword">])&nbsp;?&nbsp;</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'departAllerData'</span><span class="syntaxkeyword">]&nbsp;:&nbsp;</span><span class="syntaxstring">''</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$arriveeAllerData&nbsp;</span><span class="syntaxkeyword">=&nbsp;isset(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'arriveeAllerData'</span><span class="syntaxkeyword">])&nbsp;?&nbsp;</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'arriveeAllerData'</span><span class="syntaxkeyword">]&nbsp;:&nbsp;</span><span class="syntaxstring">''</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">$departAllerData&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">explode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'|'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$departAllerData</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$departVille&nbsp;</span><span class="syntaxkeyword">=&nbsp;isset(</span><span class="syntaxdefault">$departAllerData</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">])&nbsp;?&nbsp;</span><span class="syntaxdefault">str_replace</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'t:'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">''</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$departAllerData</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">])&nbsp;:&nbsp;</span><span class="syntaxstring">''</span><span class="syntaxkeyword">;<br /><br />echo&nbsp;</span><span class="syntaxdefault">$departVille</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'<br&nbsp;/>'</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">$arriveeAllerData&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">explode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'|'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$arriveeAllerData</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$arriveeVille&nbsp;</span><span class="syntaxkeyword">=&nbsp;isset(</span><span class="syntaxdefault">$arriveeAllerData</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">])&nbsp;?&nbsp;</span><span class="syntaxdefault">str_replace</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'t:'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">''</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$arriveeAllerData</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">])&nbsp;:&nbsp;</span><span class="syntaxstring">''</span><span class="syntaxkeyword">;<br /><br />echo&nbsp;</span><span class="syntaxdefault">$arriveeVille</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'<br&nbsp;/>'</span><span class="syntaxkeyword">;<br />&nbsp;</span><span class="syntaxdefault"></span>
 
WRInaute discret
Merci spout, je vais essayer ta solution puisque je suis en php
Désolé jv2759, j'aurai du le préciser
Bonne soirée


Edit : Je viens de tester, çà fonctionne impeccable
Un grand merci spout
 
WRInaute accro
Les données cherchées sont a la fin juste avant le caractère ":" odnc un truc du genre :
ereg_replace("^.*:","",$variable) devrai passer
 
WRInaute accro
ereg_* est déprécié, il faut plutôt utiliser preg_* :)

Ou avec l'idée d'explode sur les ":", si la ville est tjs en dernier, c'est plus simple:
PHP:
<span class="syntaxdefault"><br /></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br />$departVille&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">array_pop</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">explode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">':'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'departAllerData'</span><span class="syntaxkeyword">]));<br /></span><span class="syntaxdefault">$arriveeVille&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">array_pop</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">explode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">':'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'arriveeAllerData'</span><span class="syntaxkeyword">]));<br /><br />echo&nbsp;</span><span class="syntaxdefault">$departVille</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'<br&nbsp;/>'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$arriveeVille</span><span class="syntaxkeyword">;<br />&nbsp;</span><span class="syntaxdefault"></span>
 
WRInaute accro
spout a dit:
ereg_* est déprécié, il faut plutôt utiliser preg_* :)
Tu sais avant que les derniers php 5 disparaissent sachant qu'il les prennent en compte il y aura de l'octet qui aura coulé dans les fibres optiques :D
edit : les derniers serveurs php 3 disparaissent encore en ce moment même .... promis a la fin de php4 je parlerai plus d'ereg ...
 
Discussions similaires
Haut