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 :

détection d'un lien dans un texte [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut détection d'un lien dans un texte
    Bonjour,

    je recherche une chose toute simple mais je ne dois pas donner la bonne nourriture à Google ...

    j'ai dans ma bdd un champ "commentaires" (text)
    il contient des fois des liens (http://www........) et j'aimerais à l'affichage que ce lien soit cliquable, mais je ne trouve pas ce que je veux pour la détection de lien.

    Merci d'avance pour votre aide

  2. #2
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Salut,
    C'est possible que vous ayez du mal a vous coprendre, google et toi.

    Tu nous donnes trop peu d'informations : comment commence ta chaine, comment elle finie, quelles sont les caractères avant, apres, un texte multiligne ou non ?
    Z.

  3. #3
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut
    pas besoin de donner plus de détails ...
    un lien est un lien, j'ai donné un petit exemple http://www.......
    si tu préfères voilà ce que je peux trouver dans le champs de ma base de données :

    "j'adore le site http://www.google.fr il est génial !"

    j'aimerais donc que le liens (qui commence par http:// ... et qui va jusqu'à un espace ...) soit détecter afin d'en faire un lien cliquable (comme ici sur le forum)

  4. #4
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    si tu veux jouer a qui est le plus stupide, sache que dans ton exemple, il n'y avait pas d'espace a la suite du lien... donc tu t'en sors pas mal non plus :p

    Plus sérieusement :
    Tu peux essayer un regex du genre : @(http://www[^ ]+)@
    traduction : rechercher toutes les chaines contenant http://www et en prenant tous les caractères qui suivent cette expression jusqu'a recontrer un espace.
    Tu combine cela avec la fonction preg_match_all et je pense que tu devrais avoir tous les liens correspondant a cette description.
    Z.

  5. #5
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut
    merci de ta réponse

    j'ai bien réussi à détecter les liens mais je voudrais maintenant les remplacer par le html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $html = "j'adore le site http://www.google.com il est génial";
     
    preg_match_all("@(http://www[^ ]+)@", $html, $matches);
     
    foreach ($matches as $val) {
        echo $val[0] . "<br />";
    }
    j'ai repris l'exemple de php.net
    or dans ce cas il me retourne seulement http://www.google.com
    j'aimerais qu'en html ça me retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    j'adore le site <a href="http://www.google.com">http://www.google.com</a> il est génial
    mais je ne vois pas trop comment le combiner à un str_replace (ou autre) pour faire ce changement.

    Merci d'avance

    PS : je ne jouais pas au plus bête, je pensais avoir été clair dès mon premier message

  6. #6
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    J'avais pas compris que tu voualis remplacer avec un lien html.
    Il faut alors utiliser preg_replace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $html = "j'adore le site http://www.google.com il est génial";
     
    echo preg_replace("@(http://www[^ ]+)@", "<a href=\"$1\">$1</a>", $html);
    ?>

  7. #7
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut
    impeccable merci beaucoup !
    il va vraiment falloir que je m'y mette aux expressions régulières ...

    Thanks

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. REGEX : ajout de liens dans un texte HTML
    Par Tororo73 dans le forum Langage
    Réponses: 2
    Dernier message: 24/06/2011, 12h46
  2. Liens dans du texte
    Par r0seBa dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/03/2010, 22h34
  3. Soucis flash XML contenant des liens dans un texte dynamique
    Par codefalse dans le forum ActionScript 1 & ActionScript 2
    Réponses: 8
    Dernier message: 15/08/2007, 16h39
  4. Réponses: 2
    Dernier message: 28/02/2006, 15h54
  5. Des styles pour le texte et les liens dans la meme div?
    Par Donkey' Shot dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 26/01/2005, 20h03

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