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 :

Fonction str_replace (un peu plus) intelligente


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Par défaut Fonction str_replace (un peu plus) intelligente
    Bonjour à tous,

    Je cherche à créer une fonction "liens automatiques" dont le principe est le suivant:
    - Après avoir fait une requête sur la table qui m'intéresse (champs: plats_miam_miam, url_page), en ajoutant l'url correspondante au plat en question (codée en dur dans la requête), j'écris ensuite le tout dans un autre fichier (mots_cles.inc.php) (via fopen, fwrite, etc.) 2 tableaux (à une colonne) :
    - un $tab_mot_rechercher qui contient tous les noms renvoyés par la requête (exemple : "Lasagnes au Cheval")
    - un $tab_mot_remplacer qui contient les urls des plats préférés correspondant à chaque nom (exemple : "<a href='lasagne-au-cheval.html'>Lasagnes au Cheval</a>")

    Puis, à l'affichage d'un paragraphe dans une page je fais un $paragraphe=str_replace($tab_mot_rechercher, $tab_mot_remplacer, $paragraphe);

    Evidemment, ça ne marche que pour des cas simples car, dans l'exemple suivant:

    J'ai une chaine de caractères, comme le Lanquetot.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $str_tamere = 'Bonjour, je suis un consommateur qui aime bien les lasagnes au cheval!';
    J'ai mes deux array:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $tab_mot_rechercher[0]='Lasagnes au Cheval';
    $tab_mot_rechercher[1]='Lasagnes'; //oui, il y aussi des lasagnes normales
    $tab_mot_remplacer[0]='<a href="lasagnes-au-cheval.html">Lasagnes au Cheval</a>';
    $tab_mot_remplacer[1]='<a href="lasagnes.html">Lasagnes</a>';
    Pour la première itération dans le str_replace($tab_mot_rechercher, $tab_mot_remplacer, $str_tamere):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $str_tamere = 'Bonjour, je suis un consommateur qui aime bien les <a href="lasagnes-au-cheval.html">Lasagnes au Cheval</a>!';
    NICKEL SERIEUX MA GUEULE.

    Pour la seconde itération implicite du str_replace:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $str_tamere = 'Bonjour, je suis un consommateur qui aime bien les <a href="<a href="lasagnes.html">Lasagnes</a>-au-cheval.html"><a href="lasagnes.html">Lasagnes</a>au Cheval</a>!';
    Et évidemment, ça affiche n'importe quoi.

    En bref: comment exclure l'ensemble du texte à l'intérieur d'éventuelles balises html lors de la recherche/remplace?

    Merci!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 209
    Par défaut
    Une seule solution : utiliser les expressions rationnelles...

    Mais de toutes facon tu as un pb, tu ne peux pas avoir des lien imbriqués. Tu peux avoir 1 lien pour "lasagne" et 1 autre pour "au cheval", mais "lasagne" ne peut pas représenter 2 lien...

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/02/2006, 14h54
  2. [Tableaux] Fonction str_replace et les accents
    Par GarGamel55 dans le forum Langage
    Réponses: 5
    Dernier message: 18/02/2006, 19h05
  3. [C++]bibliotheque utilisant les sockets et un peu plus...
    Par hansaplast dans le forum Développement
    Réponses: 3
    Dernier message: 05/12/2005, 15h28
  4. [SQL] requetes inbriquées un peu plus complexe.
    Par Devil666 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2005, 12h06

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