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 16/03/2011, 01h38   #1
Membre du Club
 
Avatar de paradeofphp
 
Inscription : décembre 2005
Messages : 312
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 312
Points : 58
Points : 58
Par défaut Vérifier si une url est valide

Bonjour,

J'ai une url qui peut prendre 2 formes, soit :
1 - www.example.com/test/id-titre
2- test/id-titre

=> test est le nom du module, il est fixe
=> id est un entier
=> titre est une chaine de cacactère

Comment je peux faire pour valider l'url avec une expression régulière ?

Merci d'avance
paradeofphp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 12h00   #2
Membre actif
 
Avatar de Epica84
 
Christophe GUALANO
Étudiant
Inscription : décembre 2008
Messages : 164
Détails du profil
Informations personnelles :
Nom : Christophe GUALANO
Âge : 22
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2008
Messages : 164
Points : 156
Points : 156
Envoyer un message via MSN à Epica84
Perso, j'aurai contourné le problème ...

Tu fait un petit http_request et s'il te renvoi rien c'est que l'adresse URL n'est pas bonne ...

Et si tu veut faire du contrôle tu te fait une liste de motifs avec se qui peut appaitre dans ton URL.
__________________
ARLES, du 02 au 05 Avril 2010, Féria de Pâques.
Epica84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 12h08   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Hello

Quels sont tes besoins ? As tu un routeur ? Utilises-tu l'URL rewriting ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 13h51   #4
Membre du Club
 
Avatar de paradeofphp
 
Inscription : décembre 2005
Messages : 312
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 312
Points : 58
Points : 58
Bonjour,

Merci pour vos réponses.
En fait, mon besoin est le suivant :
les membres du sites participent à un concours. Les membres doivent choisir des articles qui n'ont pas de photo et uploader leur propre photo et doivent aussi saisir l'url de l'article.

Pour l'url rewrting oui je l'utilise. Voici la règle que je n'arrive pas à transformer pour la fonction preg_match :

Code :
^test/(?:([a-zA-Z0-9@_-]+)/)?([0-9]+)[-]([a-zA-Z0-9@_-]+)
J'ai écris ce code :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
<?php
 
$url = "test/4507-bla-bla";
if(preg_match("/^test/(?:([a-zA-Z0-9@_-]+)/)?([0-9]+)[-]([a-zA-Z0-9@_-]+)/", $url)){
	 echo "url is valid.";
}else{
	echo "url is not valid.";
}	 
 
?>
j'ai eu l'erreur suivante :

Citation:
Warning: preg_match() [function.preg-match]: Unknown modifier '(' in C:\wamp\www\ricardo\regex.php on line 4
url is not valid.
Je ne sais pas trop c'est quoi le problème.

Merci pour votre aide
paradeofphp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 18h11   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Ta regexp n'est pas correcte car tu n'a pas mis de delimiter. Preg match utilise le premier caractère comme délimiteur en l'occurrence le slash donc lors que tu l'utilise à nouveau dans l'expression il croit que la définition de la regexp se termine et que les options prennent place.
Regarde la documentation pour en savoir davantage: http://www.php.net/manual/en/pcre.pattern.php

Voici le pattern équivalent en PHP:
Code :
1
2
 
#^test/([a-zA-Z0-9@_\-]+/)?[0-9]+\-[a-zA-Z0-9@_\-]+/?#
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h54.


 
 
 
 
Partenaires

Hébergement Web