Lister et dédoublonner les mots bannis d'un texte

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3332
Inscription: Mar Nov 16, 2004 18:27

Lister et dédoublonner les mots bannis d'un texte

Message le Sam Jan 05, 2008 9:48

Bonjour,

J'ai créer un filtre pour ressortir la liste des mots bannis d'une texte. J'en profite pour vous le donner.
Simple: d'un coté le texte et de l'autre la liste de mots bannis/
Reste encore un bug -> Le code fonctionne trés bien mais des que j'essaye de passer ce code dans une fonction, cela ne fonctionne plus du tout.

Une idée ?


Code: Tout sélectionner
<?php

$tb_m_b = 'je|tu|il|ils|elle|elles';
$titre = "Je suis avec elle pour elle meme!";

function liste_mots_bannis_et_deboublonne($titre) {
$x=0;
$tab_invalide = array();
// passe le texte en minuscule
$titre = strtolower($titre);
// passe la chaine en tableau
$titre_tab = split("[^[:alpha:]]+", $titre);
// ressort la liste des mots interdits
foreach($titre_tab as $v)  {
       $tab_invalide[$x] .= ''.(ereg('('.$tb_m_b.')', $v) ? '-'.$v.' ' : '').'';
       $x++; }
// dedoublonne
$tab_invalide = array_unique($tab_invalide);
// passe le tableau en chaine
foreach($tab_invalide as $b)  $tab_final_invalide .= ''.$b.'';
// le resultat est dans $tab_final_invalide
   return $tab_final_invalide;
   }

if(ereg('('.$tb_m_b.')',$titre))
{  echo 'Mots non autorisés: ('.liste_mots_bannis_et_deboublonne("$titre").')<br />';
}

?>


affiche:
Mots non autorisés: (-Je -suis -avec -pour -elle -meme - )

Ne fonctionne pas puisque cela retourne la liste de tout les mots

Code: Tout sélectionner
<?php

$tb_m_b = 'je|tu|il|ils|elle|elles';
$titre = "Je suis avec elle pour elle meme!";

$x=0;
$tab_invalide = array();
// passe le texte en minuscule
$titre = strtolower($titre);
// passe la chaine en tableau
$titre_tab = split("[^[:alpha:]]+", $titre);
// ressort la liste des mots interdits
foreach($titre_tab as $v)  {
       $tab_invalide[$x] .= ''.(ereg('('.$tb_m_b.')', $v) ? '-'.$v.' ' : '').'';
       $x++; }
// dedoublonne
$tab_invalide = array_unique($tab_invalide);
// passe le tableau en chaine
foreach($tab_invalide as $b)  $tab_final_invalide .= ''.$b.'';
// le resultat est dans $tab_final_invalide


if(ereg('('.$tb_m_b.')',$titre)) { echo 'Mots non autorisés: ('.$tab_final_invalide.')<br />';
}
?>


affiche:
Mots non autorisés: (-je -elle )

Ce code par contre fonctionne trés bien.


arnaudmn
WRInaute accro
WRInaute accro
 
Messages: 1483
Inscription: Mer Mai 11, 2005 18:20

Message le Sam Jan 05, 2008 9:55

Ta variable $tb_m_b est global. Sauf que dans ta fonction, si tu veux y acceder comme une variable globale, tu dois l'indiquer à php en mettant dans ta fonction la ligne :
GLOBAL $tb_m_b;
Sinon, php supoose que ta variable $tb_m_b est locale, et donc elle est vide.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3332
Inscription: Mar Nov 16, 2004 18:27

Message le Sam Jan 05, 2008 10:13

Parfait, la fonction marche a merveille :D

Merci et @++


arnaudmn
WRInaute accro
WRInaute accro
 
Messages: 1483
Inscription: Mer Mai 11, 2005 18:20

Message le Sam Jan 05, 2008 10:22

KOogar a écrit:Parfait, la fonction marche a merveille :D


Ouf :-)

Bon ben moi, j'ai fait ma BA de l'année ; une bonne chose de faite 8)


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3332
Inscription: Mar Nov 16, 2004 18:27

Message le Sam Jan 05, 2008 12:28

j'espere qui t'en reste encore tout un pack pour WRI, car moi me reste encore quelque matins à faire la tete dans le sac ;)


arnaudmn
WRInaute accro
WRInaute accro
 
Messages: 1483
Inscription: Mer Mai 11, 2005 18:20

Message le Sam Jan 05, 2008 15:36

KOogar a écrit:j'espere qui t'en reste encore tout un pack pour WRI, car moi me reste encore quelque matins à faire la tete dans le sac ;)


Un pack de BA ? Tu rêve ! J'ai même pas été nominé pour le "meilleur wrinaute de l'année", donc je refuse de rendre encore service ! :-)


bee_human
WRInaute accro
WRInaute accro
 
Messages: 2019
Inscription: Jeu Juin 16, 2005 19:51

Message le Sam Jan 05, 2008 22:16

arnaudmn a écrit:
KOogar a écrit:j'espere qui t'en reste encore tout un pack pour WRI, car moi me reste encore quelque matins à faire la tete dans le sac ;)


Un pack de BA ? Tu rêve ! J'ai même pas été nominé pour le "meilleur wrinaute de l'année", donc je refuse de rendre encore service ! :-)


Je te note sur mes tablettes. Pour dans un an s'il y a le même challenge.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités