Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/06/2010, à 10:15

Askelon

[Résolu] [PHP] Regexp et titres Mediawiki...

Salut à tous !

Je suis actuellement sur un petit projet pour lequel je dois détecter la présence dans ma page de titres «mediawiki-like» :

== titre ==

J'ai le code suivant qui fait cela correctement, ou presque...

preg_match_all("((\=+)(.*?)(\=+))",$this->text,$matches);

Où $this-> est mon texte à parser.

Mais... si j'ai par exemple le code suivant dans mon texte :

[url =http://forum.ubuntu-fr.org/search.php?action=show_24h]Messages récents[/url]

L'expression régulière fonctionne me trouve le «titre» suivant :

=http://forum.ubuntu-fr.org/search.php?action=

hmm la seule solution que j'ai trouvé est... de n'utiliser que des == et suivants (===, ====, =====, etc), mais c'est quand même bien moins pratique qu'avoir une regexp qui fonctionne parfaitement...

Quelqu'un aurait une idée de comment régler ça ?

Merci smile

Dernière modification par Askelon (Le 08/06/2010, à 12:25)

Hors ligne

#2 Le 08/06/2010, à 11:29

iuchiban

Re : [Résolu] [PHP] Regexp et titres Mediawiki...

Salut,

C'est le problème des regexp, il te faut l'unicité des expressions à rechercher.
Tu peux peut être utiliser une expression forçant un espace après le premier groupe de = et avant le deuxième groupe de =
= Titre = fonctionnera
[url =http://forum.ubuntu-fr.org/search.php?action=show_24h ne fonctionnera pas

Ou bien tu rajoutes :
[= en début de ligne][Texte][= en fin de ligne] => balise
^\=+ Texte \=$ en bash par exemple


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

#3 Le 08/06/2010, à 12:27

Askelon

Re : [Résolu] [PHP] Regexp et titres Mediawiki...

Résolu !

Je ne sais pas pourquoi cela ne marchait pas quand j'ai essayé hier soir...

((\=+ )(.*?)( \=+))

Résout le problème. Merci iuchiban smile

Hors ligne

#4 Le 08/06/2010, à 13:40

iuchiban

Re : [Résolu] [PHP] Regexp et titres Mediawiki...

Mais il faut faire attention à bien mettre des espaces.
la deuxième proposition (vérification début / fin de ligne) à l'intérêt de marcher que l'on mette des espaces ou non.


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

#5 Le 08/06/2010, à 16:15

Askelon

Re : [Résolu] [PHP] Regexp et titres Mediawiki...

Idéalement j'aimerais utiliser la détection début fin de ligne, oui, mais... non, en fait. Le chaine que je teste est en fait un contenu très long, un article complet... du coup cette détection ne fonctionne pas hmm

Hors ligne