Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/01/2011, 12h53   #1
Invité de passage
 
Inscription : novembre 2008
Messages : 16
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 16
Points : 3
Points : 3
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 :
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
Generation-Web est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 13h45   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Hello

Avec une expression régulière, ça se fait très simplement:
Code :
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 ? "
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 13h50   #3
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

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

Informations forums :
Inscription : mai 2009
Messages : 456
Points : 639
Points : 639
Code :
1
2
3
 
$str = preg_replace('/\ [a-z]{1,3}\ /', '', $chaine10);
$str = preg_replace('/\ [a-z]{1,3},/', ',', $chaine10);
m4riachi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 13h53   #4
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
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 116
Points : 2 142
Points : 2 142
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
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne.
Le bouton ne masse pas les pieds, mais ça aide la communauté.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 15h31   #5
Invité de passage
 
Inscription : novembre 2008
Messages : 16
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 16
Points : 3
Points : 3
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
Generation-Web est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h03.


 
 
 
 
Partenaires

Hébergement Web