script remplacement de mots
Posté : 23 juil. 2011, 15:35
Bonjour,
ça fait plusieurs jours que j'essaie d'arriver au bout de ce petit script, mais il me pose problème.
A partir d'une phrase, $phrase = "Le chat joue avec sa balle dans le salon"
je vais chercher des synonymes dans ma base avec une requête qui me donne 2 variables :
$groupe qui a pour valeurs "{Le chat|La chatte|Le chaton}" "{avec sa balle|a la balle|au ballon}" et " {salon|dressing}"
et $separe qui a pour valeurs "Le chat" "La chatte" " Le chaton" "avec sa balle" "a la balle" "salon" "dressing"
a la fin du script la phrase doit ressembler a ça : {Le chat|La chatte|Le chaton} joue {avec sa balle|a la balle|au ballon} dans le {salon|dressing}
mais pour l'instant, je n'arrive qu'a ça : Le {Le chat|La chatte|Le chaton} joue avec sa {avec sa balle|a la balle|au ballon} dans le {salon|dressing} avec ce code
Array ( [0] => ) Array ( [0] => chat ) Array ( [0] => ) Array ( [0] => ) Array ( [0] => ) Array ( [0] => balle ) Array ( [0] => ) Array ( [0] => ) Array ( [0] => salon )
et un print_r de $separe_value me donne
Array ( [0] => Le ) Array ( [0] => chat ) Array ( [0] => joue ) Array ( [0] => avec ) Array ( [0] => sa ) Array ( [0] => balle ) Array ( [0] => dans ) Array ( [0] => le ) Array ( [0] => salon )
comment faire pour que print_r de $sep soit
Array ( [0] => Le ) Array ( [0] => chat ) Array ( [0] => ) Array ( [0] => avec ) Array ( [0] => sa ) Array ( [0] => balle ) Array ( [0] => ) Array ( [0] => ) Array ( [0] => salon )
merci de votre aide
ça fait plusieurs jours que j'essaie d'arriver au bout de ce petit script, mais il me pose problème.
A partir d'une phrase, $phrase = "Le chat joue avec sa balle dans le salon"
je vais chercher des synonymes dans ma base avec une requête qui me donne 2 variables :
$groupe qui a pour valeurs "{Le chat|La chatte|Le chaton}" "{avec sa balle|a la balle|au ballon}" et " {salon|dressing}"
et $separe qui a pour valeurs "Le chat" "La chatte" " Le chaton" "avec sa balle" "a la balle" "salon" "dressing"
a la fin du script la phrase doit ressembler a ça : {Le chat|La chatte|Le chaton} joue {avec sa balle|a la balle|au ballon} dans le {salon|dressing}
mais pour l'instant, je n'arrive qu'a ça : Le {Le chat|La chatte|Le chaton} joue avec sa {avec sa balle|a la balle|au ballon} dans le {salon|dressing} avec ce code
<?php
$phrase = "Le chat joue avec sa balle dans le salon";
$texte_decoupe = explode(" ", $phrase);
foreach($texte_decoupe as $i => $value)
{
$req = mysql_query(ma requete qui fonctionne) or die(mysql_error());
$ligne = mysql_fetch_assoc($req);
$groupe = stripslashes($ligne["groupe"]);
$separe = stripslashes($ligne["separe"]);
$phrase1 .= "".preg_replace('#'.$separe.'#iU',"$groupe ",$separe)."";
$separe_decoupe = explode(" ",$separe);
$separe_value = array($value);
foreach($separe_decoupe as $sep)
$sep = array($sep);
$data3 = array_diff($separe_value,$sep);
$value3 = implode(' ',$data3);
$phrase1 .= "$value3 ";
}
echo $phrase1;
?>
le array_diff devrait me renvoyer les mots "joue" "dans" "le", mais le probleme est la un print_r de $sep me donne Array ( [0] => ) Array ( [0] => chat ) Array ( [0] => ) Array ( [0] => ) Array ( [0] => ) Array ( [0] => balle ) Array ( [0] => ) Array ( [0] => ) Array ( [0] => salon )
et un print_r de $separe_value me donne
Array ( [0] => Le ) Array ( [0] => chat ) Array ( [0] => joue ) Array ( [0] => avec ) Array ( [0] => sa ) Array ( [0] => balle ) Array ( [0] => dans ) Array ( [0] => le ) Array ( [0] => salon )
comment faire pour que print_r de $sep soit
Array ( [0] => Le ) Array ( [0] => chat ) Array ( [0] => ) Array ( [0] => avec ) Array ( [0] => sa ) Array ( [0] => balle ) Array ( [0] => ) Array ( [0] => ) Array ( [0] => salon )
merci de votre aide