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 :

Supprimer des mots dans une chaine de mots clés


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 16
    Points : 11
    Points
    11
    Par défaut Supprimer des mots dans une chaine de mots clés
    Bonjour à tous!

    Voila je souhaiterais en fait enlever les
    mots de moins de 3 caractères dans une chaine.

    Pour cela, j'ai essayé ce code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
    echo '<ul>';
     
    //après avoir fait une requete pour obtenir les mots clés de la page (ex: site web, web, internet, site de news)
    $chaine10 = $donnees['metamots']; 
     
    //on découpe chaque expression de la chaine (ex: site de news)
    $teste = explode(",", $chaine10);
     
    //on découpe chacun des mots des expressions de la chaine (ex: site)
    $teste2 = explode(" ", $teste);
     
    //si un des mots est inférieur à 3 caractères alors on le supprime (ex: de)
    if(strln($teste2) < 3) 
    {
    $teste = str_replace($teste2,'',$teste);
    }
     
     
    //on affiche enfin les resultats
    foreach($teste AS $valeur2)
    {
    $valeur3 = trim($valeur2);
    $valeur4 = str_replace(' ', '+', $valeur3);
      echo '<li><a href="http://www.monsite/tag/'.$valeur4.'">'.$valeur3.'</a></li>';
    }
     
    echo '</ul>';

    La page n'affiche rien et il doit y avoir une belle erreur dans la formulation de mon code.
    Qu'est-ce qui ne va pas? Avez-vous une idée pour résoudre le problème?

    Merci d'avance pour votre aide.
    Tom

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Hello

    Avec une expression régulière, ça se fait très simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $str = "Hello there my dear friend, happy day isn't it ?";
    $new_str = preg_replace('#\ [a-zA-Z]{0,3}\ #',' ', $str); 
    echo $new_str;// affiche "Hello there dear friend, happy isn't ? "

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $str = preg_replace('/\ [a-z]{1,3}\ /', '', $chaine10);
    $str = preg_replace('/\ [a-z]{1,3},/', ',', $chaine10);
    A la recherche d'un film : http://chercher-un-film.com

  4. #4
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    T'affiches les erreurs dans tes scripts ou pas?

    La fonction strln n'existe pas. Par contre strlen existe elle.

    Je pense qu'une révision de ta config pour afficher les erreurs pourrait être utile. Voir error_reporting et display_errors dans php.ini
    Comparez la qualité et le prix du matériel de bricolage ou de maison avant d'acheter : MatosMaison
    Le bouton ne masse pas les pieds, mais ça aide la communauté.

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Merci pour vos réponses!
    Les erreurs sont corrigées et l'utilisation de regex est beaucoup plus appropriée dans cette situation.

    Merci encore!
    Tom

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

Discussions similaires

  1. [MySQL-5.5] Recherche d'une liste de mots dans une chaine
    Par Phiss dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/07/2014, 16h08
  2. Supprimer des mots dans une chaine de caractères
    Par Sanceray3 dans le forum Langage
    Réponses: 3
    Dernier message: 31/08/2009, 11h04
  3. Supprimer des caractères dans une chaine
    Par bahamut100 dans le forum Langage
    Réponses: 3
    Dernier message: 12/02/2009, 10h25
  4. Réponses: 5
    Dernier message: 21/01/2007, 00h43
  5. [Tableaux] Supprimer des caractères dans une chaine
    Par ddubois dans le forum Langage
    Réponses: 10
    Dernier message: 16/12/2006, 13h53

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