Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/12/2011, 18h36   #1
Membre expérimenté
 
Avatar de Torgar
 
Homme Jérémy
Développeur Web
Inscription : août 2007
Messages : 326
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 326
Points : 535
Points : 535
Envoyer un message via MSN à Torgar Envoyer un message via Skype™ à Torgar
Par défaut Extraction d'une portion de chaîne dans une url

Bonjour,

Je fais appel à vos connaissances car si il y a vraiment bien un truc où j'ai du mal, c'est les expressions régulières

Une exemple vaut mieux qu'un long discours :
Je dispose d'une url de ce type, que je retrouve grâce $_SERVER['REQUEST_URI'] (je prends celui-ci à cause de l'url rewriting que j'ai mis en place) :
/project_d01/sous-categorie-60.html

Je voudrais bien avoir :
sous-categorie

J'ai essayé ça et diverses variantes mais rien, mon printr reste définitivement vide :

Code :
1
2
preg_match('@^/([a-z-_])/([a-z-]+)([0-9]+)(\.html|\.php)@i', $_SERVER['REQUEST_URI'], $matches);
Fonction::printr($matches); // Fonction perso qui combine les echo <xmp>print_r($matches)</xmp>
Si quelqu'un à une idée de la marche à suivre je lui en serais reconnaissant.

Merci
__________________
Vivez vos rêves !!!

Si vous voulez que l'on vous aide, postez votre code avec la balise [ CODE ] [ /CODE ] (bouton # de l'éditeur)
Torgar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 18h52   #2
Invité régulier
 
Homme
Inscription : octobre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2011
Messages : 4
Points : 5
Points : 5
Bonsoir,

Une proposition :
Code :
1
2
3
 
$tab = explode('-',basename($_SERVER['REQUEST_URI']));
echo "Sous-catégorie=".$tab[0];
A+
Psou78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 19h14   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
c'est pour faire quoi ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 19h41   #4
Membre expérimenté
 
Avatar de Torgar
 
Homme Jérémy
Développeur Web
Inscription : août 2007
Messages : 326
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 326
Points : 535
Points : 535
Envoyer un message via MSN à Torgar Envoyer un message via Skype™ à Torgar
Je m'en sers pour de la redirection.

J'ai une page qui gère Famille -> Catégorie -> Sous catégorie de produits.

Suivant la page que l'on consulte, l'utilisateur déclenche une action pour un traitement et j'ai besoin de faire une redirection sur cette même page mais avec les paramètres défini par l'utilisateur.
__________________
Vivez vos rêves !!!

Si vous voulez que l'on vous aide, postez votre code avec la balise [ CODE ] [ /CODE ] (bouton # de l'éditeur)
Torgar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 13h10   #5
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 671
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 671
Points : 5 404
Points : 5 404
Il manque les chiffres dans ton premier groupe, et m'est avis que tu dois avoir au moins un caractère dedans donc :
Code x :
/([a-z0-9-_]+)/([a-z-]+)([0-9]+)(\.html|\.php)
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/12/2011, 15h01   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
Citation:
Envoyé par Torgar Voir le message
Je m'en sers pour de la redirection.

J'ai une page qui gère Famille -> Catégorie -> Sous catégorie de produits.

Suivant la page que l'on consulte, l'utilisateur déclenche une action pour un traitement et j'ai besoin de faire une redirection sur cette même page mais avec les paramètres défini par l'utilisateur.
pourquoi cette information n'est pas passer par le htaccess ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 15h17   #7
Membre expérimenté
 
Avatar de Torgar
 
Homme Jérémy
Développeur Web
Inscription : août 2007
Messages : 326
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 326
Points : 535
Points : 535
Envoyer un message via MSN à Torgar Envoyer un message via Skype™ à Torgar
Citation:
Envoyé par stealth35 Voir le message
pourquoi cette information n'est pas passer par le htaccess ?
Je ne suis pas sur de comprendre ta question.


Merci Celira c'est impec' et comme d'hab', j'ai pas vu l'évidence

Merci à tous. Je mettrai en résolu une fois la question de stealth35 traitée.
__________________
Vivez vos rêves !!!

Si vous voulez que l'on vous aide, postez votre code avec la balise [ CODE ] [ /CODE ] (bouton # de l'éditeur)
Torgar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 15h33   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
t'as a manipuler l'adresse comme ça, si tu veux une information rajoute la dans ton GET, je suppose que tu fais déjà du rewrting, montre ton htaccess
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 16h12   #9
Membre expérimenté
 
Avatar de Torgar
 
Homme Jérémy
Développeur Web
Inscription : août 2007
Messages : 326
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 326
Points : 535
Points : 535
Envoyer un message via MSN à Torgar Envoyer un message via Skype™ à Torgar
Citation:
Envoyé par stealth35 Voir le message
t'as a manipuler l'adresse comme ça, si tu veux une information rajoute la dans ton GET, je suppose que tu fais déjà du rewrting, montre ton htaccess
Je ne veux pas rajouter d'information dans le GET.

Ce que je voulais c'est juste récupérer le nom de la page courante après la réecriture mais sans les fioritures.

Passer de "/project_d01/sous-categorie-60.html" à "sous-categorie"

J'aurais pu passer par $_SERVER['QUERY_STRING'] et faire un explode() mais je trouvais ça trop compliqué.
__________________
Vivez vos rêves !!!

Si vous voulez que l'on vous aide, postez votre code avec la balise [ CODE ] [ /CODE ] (bouton # de l'éditeur)
Torgar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 16h15   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
montre ton htaccess ...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 16h22   #11
Membre expérimenté
 
Avatar de Torgar
 
Homme Jérémy
Développeur Web
Inscription : août 2007
Messages : 326
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 326
Points : 535
Points : 535
Envoyer un message via MSN à Torgar Envoyer un message via Skype™ à Torgar
Voila, pardon oublie de ma part dans le précédent poste....
Ce n'est qu'un extrait car toutes les lignes sont construite de cette façon.

Code :
1
2
3
4
5
6
7
8
9
10
11
# compression gzip/deflate pour les fichiers de type : html, plain, xml, css, javascript
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript
 
<FilesMatch "\\.(js|css|html|htm|php|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>
 
Options +FollowSymlinks
RewriteEngine On
 
RewriteRule ^sous-categorie-([0-9]+)\.html$        index.php?p=catalogue&mode=view&scat=$1  [L]
__________________
Vivez vos rêves !!!

Si vous voulez que l'on vous aide, postez votre code avec la balise [ CODE ] [ /CODE ] (bouton # de l'éditeur)
Torgar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 16h27   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
faut faire par exemple :
Code :
1
2
 
RewriteRule ^(sous-categorie)-([0-9]+)\.html$        index.php?p=catalogue&mode=view&scat=$2&name=$1  [L]
dans ton code :

__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/12/2011, 16h33   #13
Membre expérimenté
 
Avatar de Torgar
 
Homme Jérémy
Développeur Web
Inscription : août 2007
Messages : 326
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 326
Points : 535
Points : 535
Envoyer un message via MSN à Torgar Envoyer un message via Skype™ à Torgar
C'est pas mal non plus ça finalement. Je m'étais même pas posé la question de savoir si c'était possible

Bon j'ai quelques lignes à modifier alors dans mon htaccess.

Merci à tous. Je marque en résolu.
__________________
Vivez vos rêves !!!

Si vous voulez que l'on vous aide, postez votre code avec la balise [ CODE ] [ /CODE ] (bouton # de l'éditeur)
Torgar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h06.


 
 
 
 
Partenaires

Hébergement Web