[PHP] - Regex mon amour

Bonjour,

j’ai un petit problème avec les Regex en PHP. Je voudrais récuperer les caractères présents entre un ‘?’ d’une part et un ‘/’ de l’autre dans une chaine… J’ai essayé, lu la doc, et j’avoue que je comprend pas grand chose

En gros, pour l’exemple :

www.monsite.com/index.php?Articles/test

Je voudrais juste récupérer ‘Articles’…

Merci

Un truc du genre “?(^/)*/” ou equivalent devrait faire l’affaire non?

[quote name=‘AkyRhO’ date=’ 11 May 2005, 21:30’]Bonjour,

j’ai un petit problème avec les Regex en PHP. Je voudrais récuperer les caractères présents entre un ‘?’ d’une part et un ‘/’ de l’autre dans une chaine… J’ai essayé, lu la doc, et j’avoue que je comprend pas grand chose

En gros, pour l’exemple :

www.monsite.com/index.php?Articles/test

Je voudrais juste récupérer ‘Articles’…

Merci
[right][post=“358317”]<{POST_SNAPBACK}>[/post][/right][/quote]

http://www.regexlib.com/

un site qui l’est bien pour les regex (avec le moteur de regex de .net, qu’il paraît qu’il est très bien).

Cela dit, ce ne serait pas plus simple d’utiliser quelque chose comme ça:

$url = substr($url, strlen($url) - strpos($string, “/”) +1, strlen($url) - strpos($url, “?”)); edit: n’importe quoi oubliez ça…

$url = substr($url, strpos($url, "?")+ 1); $url = substr($url, 0, strpos($url, "/"));
Oui non c’est pas aussi beau qu’une regex en fait… et puis il faudra se méfier si tu as plusieurs slashes et voir avec ton cas (et attention à l’offset qui n’est pas gêré de la même manière en php 4 et 5). En tout cas ce code te renvoit toujours articles et même sur une adresse comme “http://www.mydomain.com/index.php?articles/test/test123”.

[quote name=‘AkyRhO’ date=’ 11 May 2005, 22:30’]www.monsite.com/index.php?Articles/test

Je voudrais juste récupérer ‘Articles’…[right][post=“358317”]<{POST_SNAPBACK}>[/post][/right][/quote]Tu peux avoir la chaîne sans tout ce qu’il y a avant “?” en faisant $_SERVER[‘QUERY_STRING’], si ce que tu analyses c’est l’URL de ta page.

[code]

<?php var_dump($_SERVER); ?>
[/code]est ton ami. :P

ou te servir des fonctions déja existantes

http://fr3.php.net/pathinfo
http://fr3.php.net/manual/fr/function.parse-url.php

S’il ne veut recuperer que ce qu’il y’a entre le ? et le / je vois pas autrement qu’avec des regex :

\?([a-zA-Z]+)/

[j’edit parce que .+ c’est pas terrible en fait :stuck_out_tongue: ]

Pour tester mes regexp j’utilise un petit programme regex coach que l’on peut télécharger à cet endroit.
Il marche sous linux et windows.
Avec ce programme j’ai réussi à capturer Article avec la regexp suivante:

Mais celle d’unreal marche très bien aussi.

Merci a tous, mais j’ai fais autrement finalement :stuck_out_tongue: (ca marche quand meme)

@kursk : merci pour les URL, « parse url » à l’air interressant :stuck_out_tongue:

[quote name=‹ AkyRhO › date=’ 12 May 2005, 23:22’]Merci a tous, mais j’ai fais autrement finalement :stuck_out_tongue: (ca marche quand meme)[right][post=« 358704 »]<{POST_SNAPBACK}>[/post][/right][/quote]On est ici pour partager, fais voir ta méthode. :stuck_out_tongue: