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 :

Règle de remplacement d'une URL


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 122
    Points : 55
    Points
    55
    Par défaut Règle de remplacement d'une URL
    Bonjour,

    Sur un forum, je cherche à faire en sorte que lorsqu'un membre tape une adresse commençant par "http://", celle-ci se transforme automatiquement en lien.

    J'ai déjà cette ligne de code qui remplace le lien si le membre le met entre [ url ] et [/ url ] :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $output = preg_replace('/\[url\]([^]]*)\[\/url\]/e', "'<a href=\"\\1\" target=\"_blank\" title=\"Ce lien s\'ouvre dans une nouvelle fenêtre\" class=\"liens_forum\">'.Tronquer_Texte('\\1',50).'</a>'", $chaine);
    Pour remplacer automatiquement le lien si le membre n'utilise pas les balises [ url ] et [/ url ], je suppose qu'il faut détecter la présence de "http://" et considérer comme lien tout ce qui vient après "http://" tant qu'il n'y a pas d'espace.

    En suivant le modèle que je vous ai copié/collé plus haut, pourriez-vous m'indiquer la syntaxe qui me permettrait de remplacer une chaine de caractère commençant par "http://" par un lien ?

    Merci d'avance pour ce coup de main

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (http|ftp|https|ftps)://[^ \?&=\#\"\n\r\t<]*?)
    essaye ça...

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 122
    Points : 55
    Points
    55
    Par défaut
    Ca ne va pas ;-)

    J'avais précisé aussi "en suivant mon modèle". Je pensais que le rendu serait quelque chose de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $output = preg_replace('http://([^]]*)', "'<a href=\"http://\\1\" target=\"_blank\" title=\"Ce lien s\'ouvre dans une nouvelle fenêtre\" class=\"liens_forum\">'.Tronquer_Texte('http://\\1',50).'</a>'", $chaine);
    Sauf qu'à mon avis, ma syntaxe est mauvaise...

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    enleves les parenthese de mon exemple !

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 122
    Points : 55
    Points
    55
    Par défaut
    Ok, mais concrètement la syntaxe complète donne quoi ? (je débute dans le regex, ce qui est évident pour toi ne l'est pas pour moi...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $output = preg_replace('http|ftp|https|ftps://[^ \?&=\#\"\n\r\t<]*?', "'<a href=\"\\1\" target=\"_blank\" title=\"Ce lien s\'ouvre dans une nouvelle fenêtre\" class=\"liens_forum\">'.Tronquer_Texte('\\1',50).'</a>'", $chaine);
    Ca ne marche pas... Et mieux ça affiche une erreur :

    Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in [etc.]

Discussions similaires

  1. Remplacer un mot dans une URL prédéfinie
    Par orikalch dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/01/2012, 16h51
  2. Remplacer un pattern par une url
    Par pixelboy dans le forum Linux
    Réponses: 4
    Dernier message: 14/08/2011, 13h03
  3. Remplacement d'une url d'image sur un onmouseover
    Par bastian06n dans le forum jQuery
    Réponses: 2
    Dernier message: 16/03/2010, 14h00
  4. [RegEx] remplacement d'une chaine à la fin d'une URL
    Par ozzeo dans le forum Langage
    Réponses: 1
    Dernier message: 13/05/2009, 16h34
  5. Remplacer les espaces d'une URL par un tiret
    Par Tee shot dans le forum Langage
    Réponses: 2
    Dernier message: 29/03/2007, 01h02

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