J'ai une expression du genre :
if (eregi("^SAINT ",$ville))
Je sais qu'il faut remplacer le ereg par un preg_match, mais je n'ai pas
compris où caser le paramètre i... Désolée de poser une question aussi
bête, mais c'est une information que je n'ai pas su trouver dans la
documentation PHP.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
Bonjour,
Le 23/02/2011 18:28, Pascale a écrit :
J'ai une expression du genre : if (eregi("^SAINT ",$ville))
Je sais qu'il faut remplacer le ereg par un preg_match, mais je n'ai pas compris où caser le paramètre i... Désolée de poser une question aussi bête, mais c'est une information que je n'ai pas su trouver dans la documentation PHP.
Tu as plusieurs choix possibles.
Le plus simple consiste à mettre l'option après le délimiteur de fin, ce qui rend l'option globale : preg_match("/^SAINT /i", $ville)
Une autre façon de donner une option globale consiste à la mettre dans les paramètres d'appel : preg_match("/^SAINT /", $ville, $matches, PCRE_CASELESS)
Sinon, tu peux le mettre à l'intérieur de la chaîne de recherche, ce qui permet éventuellement de restreindre l'option à une sous-chaîne. Pour la chaîne complète, ça serait : preg_match("/(?i)^SAINT /", $ville) ou : preg_match("/(?i:^SAINT )/", $ville)
Mais encore une fois, pour remplacer un eregi, je te conseille la première forme, c'est la plus simple. Il sera temps ensuite de te renseigner sur les autres si tu as des besoins plus spécifiques.
Cordialement, -- Olivier Miakinen
Bonjour,
Le 23/02/2011 18:28, Pascale a écrit :
J'ai une expression du genre :
if (eregi("^SAINT ",$ville))
Je sais qu'il faut remplacer le ereg par un preg_match, mais je n'ai pas
compris où caser le paramètre i... Désolée de poser une question aussi
bête, mais c'est une information que je n'ai pas su trouver dans la
documentation PHP.
Tu as plusieurs choix possibles.
Le plus simple consiste à mettre l'option après le délimiteur de fin,
ce qui rend l'option globale :
preg_match("/^SAINT /i", $ville)
Une autre façon de donner une option globale consiste à la mettre dans
les paramètres d'appel :
preg_match("/^SAINT /", $ville, $matches, PCRE_CASELESS)
Sinon, tu peux le mettre à l'intérieur de la chaîne de recherche, ce qui
permet éventuellement de restreindre l'option à une sous-chaîne. Pour la
chaîne complète, ça serait :
preg_match("/(?i)^SAINT /", $ville)
ou :
preg_match("/(?i:^SAINT )/", $ville)
Mais encore une fois, pour remplacer un eregi, je te conseille la
première forme, c'est la plus simple. Il sera temps ensuite de te
renseigner sur les autres si tu as des besoins plus spécifiques.
J'ai une expression du genre : if (eregi("^SAINT ",$ville))
Je sais qu'il faut remplacer le ereg par un preg_match, mais je n'ai pas compris où caser le paramètre i... Désolée de poser une question aussi bête, mais c'est une information que je n'ai pas su trouver dans la documentation PHP.
Tu as plusieurs choix possibles.
Le plus simple consiste à mettre l'option après le délimiteur de fin, ce qui rend l'option globale : preg_match("/^SAINT /i", $ville)
Une autre façon de donner une option globale consiste à la mettre dans les paramètres d'appel : preg_match("/^SAINT /", $ville, $matches, PCRE_CASELESS)
Sinon, tu peux le mettre à l'intérieur de la chaîne de recherche, ce qui permet éventuellement de restreindre l'option à une sous-chaîne. Pour la chaîne complète, ça serait : preg_match("/(?i)^SAINT /", $ville) ou : preg_match("/(?i:^SAINT )/", $ville)
Mais encore une fois, pour remplacer un eregi, je te conseille la première forme, c'est la plus simple. Il sera temps ensuite de te renseigner sur les autres si tu as des besoins plus spécifiques.
Cordialement, -- Olivier Miakinen
Jean-Francois Ortolo
Le 23/02/2011 18:28, Pascale a écrit :
J'ai une expression du genre : if (eregi("^SAINT ",$ville))
Je sais qu'il faut remplacer le ereg par un preg_match, mais je n'ai pas compris où caser le paramètre i... Désolée de poser une question aussi bête, mais c'est une information que je n'ai pas su trouver dans la documentation PHP.
Réponse :
Regexp preg_match() équivalente à ce que tu écris :
if(preg_match("/^SAINT /i", $ville))
Les caractère slashe "/" est dans ce cas le caractère délimiteur, et le caractère délimiteur ne doit pas apparaître dans le token $ville
Tout dépend donc de ce à quoi tu peux t'attendre dans le token $ville
Si $ville est censée pouvoir contenir "/", mais ne peut pas contenir "#", alors le caractère délimiteur peut être "#", mais pas "/".
Bien à vous.
Amicalement.
Jean-François Ortolo
-- Visitez mon site gratuit donnant des Statistiques, des Pronostics et des Historiques Graphiques sur les Courses de Chevaux: http://www.pronostics-courses.fr
Le 23/02/2011 18:28, Pascale a écrit :
J'ai une expression du genre :
if (eregi("^SAINT ",$ville))
Je sais qu'il faut remplacer le ereg par un preg_match, mais je n'ai pas
compris où caser le paramètre i... Désolée de poser une question aussi
bête, mais c'est une information que je n'ai pas su trouver dans la
documentation PHP.
Réponse :
Regexp preg_match() équivalente à ce que tu écris :
if(preg_match("/^SAINT /i", $ville))
Les caractère slashe "/" est dans ce cas le caractère délimiteur, et
le caractère délimiteur ne doit pas apparaître dans le token $ville
Tout dépend donc de ce à quoi tu peux t'attendre dans le token $ville
Si $ville est censée pouvoir contenir "/", mais ne peut pas contenir
"#", alors le caractère délimiteur peut être "#", mais pas "/".
Bien à vous.
Amicalement.
Jean-François Ortolo
--
Visitez mon site gratuit donnant des Statistiques,
des Pronostics et des Historiques Graphiques
sur les Courses de Chevaux:
http://www.pronostics-courses.fr
J'ai une expression du genre : if (eregi("^SAINT ",$ville))
Je sais qu'il faut remplacer le ereg par un preg_match, mais je n'ai pas compris où caser le paramètre i... Désolée de poser une question aussi bête, mais c'est une information que je n'ai pas su trouver dans la documentation PHP.
Réponse :
Regexp preg_match() équivalente à ce que tu écris :
if(preg_match("/^SAINT /i", $ville))
Les caractère slashe "/" est dans ce cas le caractère délimiteur, et le caractère délimiteur ne doit pas apparaître dans le token $ville
Tout dépend donc de ce à quoi tu peux t'attendre dans le token $ville
Si $ville est censée pouvoir contenir "/", mais ne peut pas contenir "#", alors le caractère délimiteur peut être "#", mais pas "/".
Bien à vous.
Amicalement.
Jean-François Ortolo
-- Visitez mon site gratuit donnant des Statistiques, des Pronostics et des Historiques Graphiques sur les Courses de Chevaux: http://www.pronostics-courses.fr
Pascale
Olivier Miakinen <om+ écrivait news:4d6546b5$:
Mais encore une fois, pour remplacer un eregi, je te conseille la première forme, c'est la plus simple. Il sera temps ensuite de te renseigner sur les autres si tu as des besoins plus spécifiques.
Je te remercie, c'est ce que je vais faire. En plus c'est pour une fonction que j'utilise une fois tous les 36 du mois, et la solution que tu m'as donnée convient tout à fait à ce que je cherche.
Mais encore une fois, pour remplacer un eregi, je te conseille la
première forme, c'est la plus simple. Il sera temps ensuite de te
renseigner sur les autres si tu as des besoins plus spécifiques.
Je te remercie, c'est ce que je vais faire. En plus c'est pour une fonction
que j'utilise une fois tous les 36 du mois, et la solution que tu m'as
donnée convient tout à fait à ce que je cherche.
Mais encore une fois, pour remplacer un eregi, je te conseille la première forme, c'est la plus simple. Il sera temps ensuite de te renseigner sur les autres si tu as des besoins plus spécifiques.
Je te remercie, c'est ce que je vais faire. En plus c'est pour une fonction que j'utilise une fois tous les 36 du mois, et la solution que tu m'as donnée convient tout à fait à ce que je cherche.
Les caractère slashe "/" est dans ce cas le caractère délimiteur, et le caractère délimiteur ne doit pas apparaître dans le token $ville
Tout dépend donc de ce à quoi tu peux t'attendre dans le token $ville
Si $ville est censée pouvoir contenir "/", mais ne peut pas contenir "#", alors le caractère délimiteur peut être "#", mais pas "/".
Bonne remarque, merci. En effet, je n'exclus pas que le nom de ville puisse contenir un « / », par contre, « # » est plus que très très improbable. Faut-il spécifiquement « déclarer » quelque part que le séparateur est #, ou bien est-ce qu'il suffit de le substituer purement et simplement à / ?
Les caractère slashe "/" est dans ce cas le caractère délimiteur, et
le caractère délimiteur ne doit pas apparaître dans le token $ville
Tout dépend donc de ce à quoi tu peux t'attendre dans le token $ville
Si $ville est censée pouvoir contenir "/", mais ne peut pas contenir
"#", alors le caractère délimiteur peut être "#", mais pas "/".
Bonne remarque, merci. En effet, je n'exclus pas que le nom de ville puisse
contenir un « / », par contre, « # » est plus que très très improbable.
Faut-il spécifiquement « déclarer » quelque part que le séparateur est #,
ou bien est-ce qu'il suffit de le substituer purement et simplement à / ?
Les caractère slashe "/" est dans ce cas le caractère délimiteur, et le caractère délimiteur ne doit pas apparaître dans le token $ville
Tout dépend donc de ce à quoi tu peux t'attendre dans le token $ville
Si $ville est censée pouvoir contenir "/", mais ne peut pas contenir "#", alors le caractère délimiteur peut être "#", mais pas "/".
Bonne remarque, merci. En effet, je n'exclus pas que le nom de ville puisse contenir un « / », par contre, « # » est plus que très très improbable. Faut-il spécifiquement « déclarer » quelque part que le séparateur est #, ou bien est-ce qu'il suffit de le substituer purement et simplement à / ?
-- Pascale http://www.la-grille-verte.net
Olivier Miakinen
Le 24/02/2011 21:45, Pascale a écrit :
if(preg_match("/^SAINT /i", $ville))
Si $ville est censée pouvoir contenir "/", mais ne peut pas contenir "#", alors le caractère délimiteur peut être "#", mais pas "/".
Bonne remarque, merci. En effet, je n'exclus pas que le nom de ville puisse contenir un « / », par contre, « # » est plus que très très improbable. Faut-il spécifiquement « déclarer » quelque part que le séparateur est #, ou bien est-ce qu'il suffit de le substituer purement et simplement à / ?
Attention à la coquille, lire « non alphanumérique » et pas « alphanumérique », ou bien aller voir la version originale en anglais : <http://fr.php.net/manual/en/regexp.reference.delimiters.php>
Par exemple : if(preg_match("#^SAINT #i", $ville)) if(preg_match("+^SAINT +i", $ville)) if(preg_match("%^SAINT %i", $ville)) if(preg_match("!^SAINT !i", $ville)) if(preg_match(":^SAINT :i", $ville)) etc.
ou bien : if(preg_match("{^SAINT }i", $ville))
Le 24/02/2011 21:45, Pascale a écrit :
if(preg_match("/^SAINT /i", $ville))
Si $ville est censée pouvoir contenir "/", mais ne peut pas contenir
"#", alors le caractère délimiteur peut être "#", mais pas "/".
Bonne remarque, merci. En effet, je n'exclus pas que le nom de ville puisse
contenir un « / », par contre, « # » est plus que très très improbable.
Faut-il spécifiquement « déclarer » quelque part que le séparateur est #,
ou bien est-ce qu'il suffit de le substituer purement et simplement à / ?
Attention à la coquille, lire « non alphanumérique » et pas
« alphanumérique », ou bien aller voir la version originale en
anglais :
<http://fr.php.net/manual/en/regexp.reference.delimiters.php>
Par exemple :
if(preg_match("#^SAINT #i", $ville))
if(preg_match("+^SAINT +i", $ville))
if(preg_match("%^SAINT %i", $ville))
if(preg_match("!^SAINT !i", $ville))
if(preg_match(":^SAINT :i", $ville))
etc.
Si $ville est censée pouvoir contenir "/", mais ne peut pas contenir "#", alors le caractère délimiteur peut être "#", mais pas "/".
Bonne remarque, merci. En effet, je n'exclus pas que le nom de ville puisse contenir un « / », par contre, « # » est plus que très très improbable. Faut-il spécifiquement « déclarer » quelque part que le séparateur est #, ou bien est-ce qu'il suffit de le substituer purement et simplement à / ?
Attention à la coquille, lire « non alphanumérique » et pas « alphanumérique », ou bien aller voir la version originale en anglais : <http://fr.php.net/manual/en/regexp.reference.delimiters.php>
Par exemple : if(preg_match("#^SAINT #i", $ville)) if(preg_match("+^SAINT +i", $ville)) if(preg_match("%^SAINT %i", $ville)) if(preg_match("!^SAINT !i", $ville)) if(preg_match(":^SAINT :i", $ville)) etc.
Les caractère slashe "/" est dans ce cas le caractère délimiteur, et le caractère délimiteur ne doit pas apparaître dans le token $ville
Tout dépend donc de ce à quoi tu peux t'attendre dans le token $ville
Si $ville est censée pouvoir contenir "/", mais ne peut pas contenir "#", alors le caractère délimiteur peut être "#", mais pas "/".
Bonne remarque, merci. En effet, je n'exclus pas que le nom de ville puisse contenir un « / », par contre, « # » est plus que très très improbable. Faut-il spécifiquement « déclarer » quelque part que le séparateur est #, ou bien est-ce qu'il suffit de le substituer purement et simplement à / ?
Bonjour Madame ( ou Mademoiselle ;) )
C'est très simple.
Le fait que le caractère est le caractère délimiteur, est indiqué par le fait qu'il suit ( et précède ), les doubles-quotes ( " ) entourant la chaîne comparaison.
Ou, plus exactement, ce caractère délimiteur, est le caractère qui délimite la chaîne, c'est-à-dire qui la commence, et la termine.
Il va de soi, que le token de comparaison entre les caractères délimiteurs, n'inclue pas les caractère délimiteurs, pour ce qui est du matchage de $ville, à ce token de comparaison.
Quant à la syntaxe de ce token de comparaison, c'est la syntaxe PCRE, et non pas la syntaxe Posix, donc il peut parfois y avoir des différences. Cependant, dans votre cas, le token de comparaison est valide d'après les deux syntaxes, donc la syntaxe PCRE, ce qui fait que le token est valide.
Donc, vous remplacez / par # , à la condition expresse, que vous soyez aboslument sûre, que # ne figurera pas dans $ville, autrement il y aurait une erreur à à l'exécution du script php, qui s'arrêterait à ce moment-là.
Il va de soi, que n'importe quel caractère peut faire office de caractère délimiteur, pour peu qu'il n'apparaisse pas dans $ville
J'espère que c'est plus clair maintenant. ;)
Bien à vous.
Amicalement.
Jean-François Ortolo
-- Visitez mon site gratuit donnant des Statistiques, des Pronostics et des Historiques Graphiques sur les Courses de Chevaux: http://www.pronostics-courses.fr
Les caractère slashe "/" est dans ce cas le caractère délimiteur, et
le caractère délimiteur ne doit pas apparaître dans le token $ville
Tout dépend donc de ce à quoi tu peux t'attendre dans le token $ville
Si $ville est censée pouvoir contenir "/", mais ne peut pas contenir
"#", alors le caractère délimiteur peut être "#", mais pas "/".
Bonne remarque, merci. En effet, je n'exclus pas que le nom de ville puisse
contenir un « / », par contre, « # » est plus que très très improbable.
Faut-il spécifiquement « déclarer » quelque part que le séparateur est #,
ou bien est-ce qu'il suffit de le substituer purement et simplement à / ?
Bonjour Madame ( ou Mademoiselle ;) )
C'est très simple.
Le fait que le caractère est le caractère délimiteur, est indiqué par
le fait qu'il suit ( et précède ), les doubles-quotes ( " ) entourant la
chaîne comparaison.
Ou, plus exactement, ce caractère délimiteur, est le caractère qui
délimite la chaîne, c'est-à-dire qui la commence, et la termine.
Il va de soi, que le token de comparaison entre les caractères
délimiteurs, n'inclue pas les caractère délimiteurs, pour ce qui est du
matchage de $ville, à ce token de comparaison.
Quant à la syntaxe de ce token de comparaison, c'est la syntaxe PCRE,
et non pas la syntaxe Posix, donc il peut parfois y avoir des
différences. Cependant, dans votre cas, le token de comparaison est
valide d'après les deux syntaxes, donc la syntaxe PCRE, ce qui fait que
le token est valide.
Donc, vous remplacez / par # , à la condition expresse, que vous
soyez aboslument sûre, que # ne figurera pas dans $ville, autrement il y
aurait une erreur à à l'exécution du script php, qui s'arrêterait à ce
moment-là.
Il va de soi, que n'importe quel caractère peut faire office de
caractère délimiteur, pour peu qu'il n'apparaisse pas dans $ville
J'espère que c'est plus clair maintenant. ;)
Bien à vous.
Amicalement.
Jean-François Ortolo
--
Visitez mon site gratuit donnant des Statistiques,
des Pronostics et des Historiques Graphiques
sur les Courses de Chevaux:
http://www.pronostics-courses.fr
Les caractère slashe "/" est dans ce cas le caractère délimiteur, et le caractère délimiteur ne doit pas apparaître dans le token $ville
Tout dépend donc de ce à quoi tu peux t'attendre dans le token $ville
Si $ville est censée pouvoir contenir "/", mais ne peut pas contenir "#", alors le caractère délimiteur peut être "#", mais pas "/".
Bonne remarque, merci. En effet, je n'exclus pas que le nom de ville puisse contenir un « / », par contre, « # » est plus que très très improbable. Faut-il spécifiquement « déclarer » quelque part que le séparateur est #, ou bien est-ce qu'il suffit de le substituer purement et simplement à / ?
Bonjour Madame ( ou Mademoiselle ;) )
C'est très simple.
Le fait que le caractère est le caractère délimiteur, est indiqué par le fait qu'il suit ( et précède ), les doubles-quotes ( " ) entourant la chaîne comparaison.
Ou, plus exactement, ce caractère délimiteur, est le caractère qui délimite la chaîne, c'est-à-dire qui la commence, et la termine.
Il va de soi, que le token de comparaison entre les caractères délimiteurs, n'inclue pas les caractère délimiteurs, pour ce qui est du matchage de $ville, à ce token de comparaison.
Quant à la syntaxe de ce token de comparaison, c'est la syntaxe PCRE, et non pas la syntaxe Posix, donc il peut parfois y avoir des différences. Cependant, dans votre cas, le token de comparaison est valide d'après les deux syntaxes, donc la syntaxe PCRE, ce qui fait que le token est valide.
Donc, vous remplacez / par # , à la condition expresse, que vous soyez aboslument sûre, que # ne figurera pas dans $ville, autrement il y aurait une erreur à à l'exécution du script php, qui s'arrêterait à ce moment-là.
Il va de soi, que n'importe quel caractère peut faire office de caractère délimiteur, pour peu qu'il n'apparaisse pas dans $ville
J'espère que c'est plus clair maintenant. ;)
Bien à vous.
Amicalement.
Jean-François Ortolo
-- Visitez mon site gratuit donnant des Statistiques, des Pronostics et des Historiques Graphiques sur les Courses de Chevaux: http://www.pronostics-courses.fr
Merci à tous les deux, Jean-François et Olivier, j'ai la réponse à mon problème et les explications (compréhensibles même pour moi) qui vont avec, donc c'est parfait !
Merci à tous les deux, Jean-François et Olivier, j'ai la réponse à mon
problème et les explications (compréhensibles même pour moi) qui vont avec,
donc c'est parfait !
Merci à tous les deux, Jean-François et Olivier, j'ai la réponse à mon problème et les explications (compréhensibles même pour moi) qui vont avec, donc c'est parfait !