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 régulière - URL [Fait]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut Expression régulière - URL
    Bonjour,

    J'ai un problème d'expression régulière.
    J'ai la chaine suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [url ]http://www.unsitequelconque.com[/url ]
    à transformer en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="http://www.unsitequelconque.com" target="_blanc">http://www.unsitequelconque.com</a>
    J'avais trouvé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       $TabModele[] = "#\[url\]^http(s)?://[-[:alnum:]]+\.[-[:alnum:]]+\.[a-zA-Z]{2,4}(:[0-9]+)?$\[/url\]#is";
       $TabRemplacement[] = "<a href=\"\1\2\" target=\"_blank\" class=\"postlink\">\1\2</a>";
     
       $Message = preg_replace($TabModele, $TabRemplacement, $Message);
    Mais ca ne marche pas, et ca dépasse mes compétences.

    Une idée ?

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    pourquoi un ^ avant http et pourquoi un $ avant \[/url ??
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Tu pourras probablement trouver une réponse avec ce tutoriel : http://g-rossolini.developpez.com/tu...ns-regulieres/

  4. #4
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    Citation Envoyé par Swoög
    pourquoi un ^ avant http et pourquoi un $ avant \[/url ??
    Aucune idée.
    De toute façon, ca ne change rien au résultat.

    Sinon, j'ai trouvé ca aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #\[url\]([a-z0-9]+?://){1}([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)\[/url\]#is
    Mais, ca ne marche pas mieux.

    J'ai essayé de construire ma propre expression à l'aide du tutoriel, mais ca ne donne rien.
    Et quand je lis les expressions que j'ai trouvé sur le net (comme celle ci-dessus), je me dis que j'ai encore beaucoup à apprendre ...
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  5. #5
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    Bon, j'abandonne les expressions régulières.
    Trop compliqué pour moi. Je ne suis même pas sûr que ça puisse servir à ça.


    Apparement, personne n'a d'idée sur la question. Et google non plus.

    Je l'ai fais à la main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       if((ereg('[url ]', $Message)) && (ereg('[/url ]', $Message)))
       {
          $Index1 = strpos($Message, '[url ]');
          $Tmp = substr($Message, $Index1 + 5);
          $Index2 = strpos($Tmp, '[/url ]');
          $Tmp = substr($Tmp, 0, $Index2);
          $Message = substr($Message, 0, $Index1) . '<a href="' . $Tmp . '" target="_blank">' . $Tmp . '</a>' . substr($Message, $Index1 + 5 + $Index2 + 6);
       }
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  6. #6
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    sérieux, faut pousser un peu plus loin les recherches ...
    pourquoi tu te compliques la vie :
    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);
    ?>

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Dans le tutoriel, ce chapitre te donnait exactement la réponse :
    http://g-rossolini.developpez.com/tu...lieres/#LIII-5

Discussions similaires

  1. [RegEx] Expression régulière url+chemin_fichier/fichier.ext
    Par antoine974 dans le forum Langage
    Réponses: 4
    Dernier message: 20/04/2011, 11h10
  2. expression régulière sur une url
    Par Sh4dow49 dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 20/08/2008, 21h32
  3. [Expressions régulières] validation url sous JS
    Par Sayrus dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/02/2007, 08h46
  4. [RegEx] Extraction d'une partie d'une URL par expression régulière
    Par Maxbenji dans le forum Langage
    Réponses: 2
    Dernier message: 16/01/2007, 22h26
  5. [RegEx] Expression régulière pour réduire des URL
    Par kivan666 dans le forum Langage
    Réponses: 6
    Dernier message: 11/06/2006, 21h39

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