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

PHP & Base de données Discussion :

Transformer un texte dans textarea en lien


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    July 2019
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : July 2019
    Messages : 114
    Points : 64
    Points
    64
    Par défaut Transformer un texte dans textarea en lien
    Bonjour à tous
    je suis en train de travail sur un formulaire. Je souhaite transformer les liens qu'envoie l'utilisateur dans son texte (par exemple un lien qu'il a copié/collé, ou une adresse mail) en lien cliquable. En gros, transformer un morceau du texte en lien "href" s'il contient un "@" ou "http" ou "https" ou ".com" ou ".fr" ou ".www" ou ".php" ou ".html" etc......
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $linkedtext = preg_replace ( '@\bhttp://([a-zA-Z0-9.%/]+)\b@', '<a href="http://$1">$1</a>', $_POST['mon_texte']);
    mais ça ne marche pas.
    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    June 2003
    Messages
    10 109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : June 2003
    Messages : 10 109
    Points : 15 343
    Points
    15 343
    Par défaut
    je viens d'essayer le code suivant avec votre expression régulière et l'url est bien transformé en lien html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $texte = "
    Bonjour
     
    http://serveur/repertoire
    ";
     
    $linkedtext = preg_replace ( '@\bhttp://([a-zA-Z0-9.%/]+)\b@', '<a href="http://$1">$1</a>', $texte);
     
    echo htmlspecialchars($linkedtext);

  3. #3
    Membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    July 2019
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : July 2019
    Messages : 114
    Points : 64
    Points
    64
    Par défaut
    Merci beaucoup Mathieu

  4. #4
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    May 2004
    Messages
    1 697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : May 2004
    Messages : 1 697
    Points : 2 877
    Points
    2 877
    Par défaut
    Attention, prévoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $linkedtext = preg_replace ( '@\b(https?)://([a-zA-Z0-9.%/]+)\b@', '<a href="$1://$2">$2</a>', $texte);
    pour gérer https (non testé)
    Christophe (cavo789)
    Mes scripts Open Source : https://github.com/cavo789

  5. #5
    Membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    July 2019
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : July 2019
    Messages : 114
    Points : 64
    Points
    64
    Par défaut
    Merci Mathieu
    En effet, je me suis retrouvé face à cette difficulté. Maintenant elle est résolue. J'ai réalisé un "preg_replace" successivement sur chaque résultat trouvé. Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $linkedtext1 = preg_replace ( '@\bhttp://([a-zA-Z0-9.%/]+)\b@', '<a href="http://$1">$1</a>', $_POST['post_texte']);
     $linkedtext2 = preg_replace ( '@\bhttps://([a-zA-Z0-9.%/]+)\b@', '<a href="http://$1">$1</a>', $linkedtext1);
     $linkedtext3= preg_replace('/(\S+@\S+\.\S+)/i', "<a href='mailto:$1'>$1</a>", $linkedtext2);
    L'opération est concluante :
    [QUOTE]Nom : resultat_transformation_texte_en_lien.JPG
Affichages : 49
Taille : 21,2 Ko[/QUOTE

    Merci pour tout et bonne journée

  6. #6
    Membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    July 2019
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : July 2019
    Messages : 114
    Points : 64
    Points
    64
    Par défaut
    Salut Mathieu, salut tout le monde
    Pardon de vous déranger
    Au moment où j'ai cru que j'avais résolu la chose, me voilà face à une nouvelle difficulté.
    Le "<href>" prend uniquement le nom du domaine. Il ne prend pas la page web apès le ".fr/".
    Voici 2 captures écran qui explique la situation :

    * Message envoyé : Nom : preg_replace.JPG
Affichages : 36
Taille : 17,8 Ko

    * Message reçu (resultat) : Nom : preg_replace_resultat.JPG
Affichages : 35
Taille : 16,4 Ko

    J'ai essayé des modifications, mais je ne parviens pas.

    Auriez-vous une solution, svp ?

  7. #7
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    May 2004
    Messages
    1 697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : May 2004
    Messages : 1 697
    Points : 2 877
    Points
    2 877
    Par défaut
    Bonjour

    Vite fait : https://regex101.com/r/srGvG2/1

    J'ai ajouté le underscore (_) dans la regex.
    Christophe (cavo789)
    Mes scripts Open Source : https://github.com/cavo789

  8. #8
    Membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    July 2019
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : July 2019
    Messages : 114
    Points : 64
    Points
    64
    Par défaut
    Salut cavo 789
    En effet c'est vite fait. J'ai pensé à plusieurs choses sauf à cela
    Bravo et merci pour tout
    Bonne soirée à toi

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

Discussions similaires

  1. Affichage texte dans textarea
    Par xian21 dans le forum Développement Web avec .NET
    Réponses: 2
    Dernier message: 11/06/2010, 11h09
  2. Couleur de text dans textarea
    Par kader53 dans le forum Langage
    Réponses: 5
    Dernier message: 04/02/2010, 10h56
  3. Insertion texte dans textarea modifiée !
    Par Aklarel dans le forum ASP.NET
    Réponses: 12
    Dernier message: 29/05/2008, 15h15
  4. Insertion texte dans textarea avec IE
    Par brazilia28 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/08/2007, 11h56

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