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 :

Remplacements href par des liens différents [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Par défaut Remplacements href par des liens différents
    Bonjour,

    Le plus simple est de fournir un exemple:
    Voici ce que j'ai :
    Le moteur de recherche<a href="http://www.google.fr">google</a>est meilleur que <a href="www.yahoo.fr">Yahoo</a>

    Voilà ce que je souhaite:
    Le moteur de recherche<a href="http://www.monsite.fr/index.php?id=1">google</a>est meilleur que <a href="www.monsite.fr/index.php?id=2">Yahoo</a>

    L'idéal serait que pour chaque occurence j'exécute une petite fonction qui va lire l'id dans une table.

    Voici ce que j'ai déjà fait :
    $text = ereg_replace("[a-zA-Z]+://([.]?[a-zA-Z0-9_/-])*", "http://www.monsite.fr/index.php?id=???", $machaineinitiale);

    Merci pour vos précieux conseils!!!

  2. #2
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Pourquoi ne pas simplement remplacer tes liens en dur directement dans le code ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Par défaut
    Simplement, parce qu'il s'agit de contenu administrable.

  4. #4
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    et pourquoi absolument passer par un script à part et ne pas laisser tel quel ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Par défaut
    Lol...

    Bon, alors, je vais expliquer pourquoi je fais un tel script:
    Je suis en train de développer un outil d'envoi de mails pour un client, et j'ai besoin d'effectuer un tracking sur les liens. Il me faut pour celà identifier chacun des liens contenus dans chacunes des newsletters qu'il va envoyer.

    Est ce que tu comprends pourquoi je dois tout automatiser?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Par défaut
    Bon, après une bonne nuit de sommeil, voici ma solution :

    - Utilisation de la fonction preg_replace_callback.

    Création d'une fonction qui enregistre dans ma base et qui me fournit un identifiant nouvellement créé:
    function maj_lien($match)
    {
    $id_n = 6;
    $lien = $match[0];
    $SQL="INSERT into matable (url) values ('".$lien."')";
    mysql_query($SQL);
    $id_lien = mysql_insert_id();

    return ("http://www.monsite.fr/index.php?id=".$id_lien);
    }


    Voici donc le code employé :
    ----------------------------------
    function maj_lien($match)
    {
    $id_n = 6;
    $lien = $match[0];
    $SQL="INSERT into matable (url) values ('".$lien."')";
    mysql_query($SQL);
    $id_lien = mysql_insert_id();

    return ("http://www.monsite.fr/index.php?id=".$id_lien);
    }


    $text = preg_replace_callback("(http://([.]?[a-zA-Z0-9_/-])*)", "maj_lien", $machaineinitiale);

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

Discussions similaires

  1. [RegEx] Remplacer URL par des liens sauf dans les balises
    Par raph37 dans le forum Langage
    Réponses: 7
    Dernier message: 19/10/2013, 20h31
  2. [AJAX] Remplacer FORM par des liens AJAX
    Par dancom5 dans le forum AJAX
    Réponses: 8
    Dernier message: 31/05/2013, 11h25
  3. Remplacer des boutons par des liens cliquables
    Par voyageurdumonde dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/04/2011, 05h26
  4. str_replace remplace les " par des '
    Par Dsphinx dans le forum Langage
    Réponses: 4
    Dernier message: 21/11/2006, 10h04
  5. Modifier une requête par des données différente
    Par leloup84 dans le forum Requêtes
    Réponses: 9
    Dernier message: 06/03/2006, 15h23

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