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 :

str_replace en fonction des occurrences


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2003
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 89
    Par défaut str_replace en fonction des occurrences
    Bonjour,

    Je cherche a dvp un petit script qui me change des mots par des synonymes dans une phrases.

    Et je bloque sur un point avec str_replace.

    Voici un exemple de ce que j'aimerai devellopper:
    Ma phrase:
    mot1 blabablabablabablabablaba blabablabablaba blabablaba mot1 blabablabablaba mot2 blabablabablaba mot1

    Mes synonymes sont sotckés dans une table sous la forme :
    1, 'mot1', 'synonyme1_a | synonyme1_b | synonime1_c '
    2, 'mot2', 'synonyme2_a | synonyme2_b '

    Le probleme c'est lorsque j'utilise la fonction str_replace(mot1, $synonime1_aleatoire, $ma_phrase)
    cela me remplace toutes les occurences de mot1 par le meme synonyme.

    Comment faire pour avoir une phrase du style:

    synonyme1_b blabablabablabablabablaba blabablabablaba blabablaba synonyme1_a blabablabablaba synonyme2_b blabablabablaba synonyme1_b

    De maniere optimisée.

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut
    Tu n'as qu'a utiliser rand:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $indice_tableau=rand(0,sizeof($synonime1));
    str_replace(mot1, $synonime1[$indice_tableau], $ma_phrase);

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2003
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 89
    Par défaut
    Ton code ne resout pas mon probleme mais merci quant meme

    Ce n'est pas le choix aleatoire du synonyme qui me pose probleme, mais le remplacement aleatoire d'un mot qui a plusieurs occurence dans une phrase.

    exemple:
    avant:
    mot1 blabablabablabablabablaba blabablabablaba blabablaba mot1 blabablabablaba mot2 blabablabablaba mot1

    apres:
    synonyme1_c blabablabablabablabablaba blabablabablaba blabablaba synonyme1_a blabablabablaba mot2 blabablabablaba synonyme1_b

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut
    Tu n'as qu'a faire un parcours de chaque mot de ta phrase, et pour chaque mot, tu testes le nombre d'occurences de ce mot dans la phrase, et si le nombre d'occurence est supérieure à 3 alors tu fais le remplacement par des synonymes aléatoires...

    Pour compter le nombre d'occurence tu peux utiliser :
    substr_count ( $phrase_ou_chercher , $mot_a_compter);

  5. #5
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Voici un code str_replace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $phrase  = "You should eat fruits, vegetables, and fiber every day.";
    $healthy = array("fruits", "vegetables", "fiber");
    $yummy   = array("pizza", "beer", "ice cream");
     
    $newphrase = str_replace($healthy, $yummy, $phrase);

Discussions similaires

  1. affichage dynamique en fonction des données en base
    Par jengo dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/10/2004, 10h22
  2. remplir une table en fonction des résultats
    Par Psychomantis dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 19/10/2004, 12h22
  3. Ajusté les Axes d'un graphe en fonction des données rentrée!
    Par Ma2thieu dans le forum Composants VCL
    Réponses: 5
    Dernier message: 09/07/2004, 01h34
  4. [CR] mise en forme d'un champs texte en fonction des données
    Par niPrM dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 29/06/2004, 11h57
  5. sélection des bd en fonction des utilisateurs (pg_hba.conf)
    Par Bouboubou dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 18/03/2004, 18h34

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