IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Expression regulière imparfaite


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Points : 17
    Points
    17
    Par défaut Expression regulière imparfaite
    Bonjour,
    je suis entrain de developper un forum et j'ai besoin de votre aide. Je veux que le membre puisse inserer un lien dans son réponse, mais lorsque j'utilise ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $in = '#\[url\](.*)\[/url\]#Usi';
    $out = "<a href=\"$1\">$1</a>";
    preg_replace($in, $out, $txt);
    ?>
    l'url inséré est cliquable, mais quand elle contient des caractères de type ? il ne considère que la partie qui précède ce caractère (?) comme un lien. Pour m'expliquer de plus,Je vous donne un exemple: si mon lien est: http://www.anakbnet.com/video/file.php?f=1113 il m'affiche : http://www.anakbnet.com/video/file.php?f=1113

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton exemple fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $txt = 'blablabla<a href="http://www.anakbnet.com/video/file.php?f=1113" target="_blank">http://www.anakbnet.com/video/file.php?f=1113</a>blablabla';
    $in = '#\[url\](.*)\[/url\]#Usi';
    $out = "<a href=\"$1\">$1</a>";
    echo preg_replace($in, $out, $txt);
    ?>
    D'ailleurs ce que tu décris n'est pas possible : l'expression régulière ne saurait pas d'elle meme decouper l'expression deux bouts sans que ces deux bouts soient définis.
    La seule explication que je vois c'est que tu fournis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    blablabla[balise]http://www.anakbnet.com/video/file.php[/balise]?f=1113blablabla
    au depart.
    Si tu as une interface qui aide a l'écriture des balises c'est peut etre la qu'il faut voir.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    La regex me semble correcte, néanmoins, moi j'écrirai plutôt ça:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $in = '~\[burl]([^[]++)\[/burl]~'; // tu peux virer les b (je n'arrive pas à afficher la balise url sans qu'elle soit interprêtée)
    $out = '<a href="$1">$1</a>';
    $txt = preg_replace($in, $out, $txt);
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    merci pour vos réponses, je pense que je dois utiliser le meme principe de la plupart des forums, c'est à dire utiliser une fenetre pop-up pour inserer un lien, le meme peincipe que developpez.com , c'est à dire lorsque je clique sur l'icone " inserer un lien" j'aurais une fenetre pop-up dans laquelle je vais ecrire mon lien et puis recupérer ce j'ai inséré depuis cette fenetre pour l'affiche dans la zone de texte (ou j'ecris mon réponse à la discussion) , mais c'est un peu difficile à le faire, j'ai pas trouvé comment créer un pop-up pour y inserer un texte et puis le recuperer

Discussions similaires

  1. Recherche recursive à l'aide des expressions reguliére
    Par titoff dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/12/2005, 16h42
  2. [RegEx] aide pour une expression regulière
    Par hugo123 dans le forum Langage
    Réponses: 5
    Dernier message: 24/11/2005, 15h41
  3. ET dans une expression regulière
    Par kesako dans le forum Langage
    Réponses: 4
    Dernier message: 10/11/2005, 12h57
  4. Problème expression regulière ??
    Par panaone dans le forum Langage
    Réponses: 5
    Dernier message: 18/08/2005, 13h41
  5. Variables et Expression Regulière
    Par Temari dans le forum Langage
    Réponses: 5
    Dernier message: 05/08/2005, 01h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo