Explode HELP!!

cs_EricLeRouge Messages postés 46 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 7 décembre 2005 - 31 mai 2005 à 18:17
cs_EricLeRouge Messages postés 46 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 7 décembre 2005 - 31 mai 2005 à 21:46
Bonjour, toujours pour me meme but (oui car c'est mon 3eme post en l'espace de 3 jours) à savoir l'exploitation de documents words (et je présice que je n'ai toujours pas eut de réponse par la meme occasion ).

J'ai un probleme avec la fonction explode, alors peut etre est ce la fatigue, mais là j'ai relu plusieurs fois le code et je comprend pas pourquoi il me décortique tout, au lieu de faire les coupures sur les espaces. En fait le but, et d'établir les phrases puis les mots d'un phares dans un tableau :

<?php


$facteur = 6;


$n1 = 0;
$n1 = 0;
$texte = "";
$fp = fopen ("9032L1.doc", "r");


//Lecture du fichier wordwhile (false !($c fgetc($fp)))
{
$texte = $texte.$c;
}


//Mise en minuscule
$texte = strtolower($texte);



//TEXTE NORMALISE


$init = explode(' ',$texte);
$i = 0;
$j = 0;
while($init[$i]!=null)
{
if ( preg_match("/[a-zA-Z]*|[0-9]*/", $init[$i])!=0 && preg_match("/ÿ|/",$init[$i])==0)
{
$tab[$j] = $init[$i];
$j++;
}
$i++;
}
$texte = "";


for($i=0;$i<$j;$i++)
$texte = $texte.' '.$tab[$i];



//Denombrement des phrases : DEGROSSISSAGE
$tab = explode(".",$texte);


//on compte le nombe de phrases
while($tab[$n1]!=null)
{
$n1++;
}


//Reperrage des phrases non significative d'apres le $facteur fixé
for($i=0;$i<$n1;$i++)
{
if(strlen($tab[$i])<$facteur)
{
$tab2[$n2] = $i;
$n2++;
}
}



//Reconcatenation en consequence
$i = $n2-1;
while($i>-1)
{
$tab[$tab2[$i]-1] = $tab[$tab2[$i]-1].".".$tab[$tab2[$i]];
$tab[$tab2[$i]] = null;
$i = $i - 1 ;
}



$j=0;


//Pour chaque phrase, on découpe les mots
for($i=0;$i<$n1;$i++)
{
if($tab[$i]!=null)
{
$phrase[$j] = explode(' ',$tab[$i]) ; //CET EXPLODE NE MARCHE PAS!!!!!
$j++;
}
}
$n1 = $j;





$expert = "";
$i = 0;
$j = 0;
$next = 0;
while($expert === "")
{
echo "[";
echo $tab[$i][$j]." ";

if($tab[$i][$j]==null) {$i++;$j=0;echo "
";}
else
{
if($tab[$i][$j]=="l'expert") //in_array("l'expert",$tab[$i]))
$next = 1;

else if(next!=0 && next<3)
{
$expert .= $tab[$i][$j];
if(next==1) $expert .=" ";
$next++;
}
$j++;
}
echo "]";

if($i==$n1) $expert="Not Found";
}



echo "
";echo "
";echo "
";echo "
";echo "
";echo "
";
echo "EXPERT = ".$expert."FIN";








//ANALYSE des phrases pour la récolte des données





fclose ($fp);
?>

Voilà, si vous pouvez m'aider ca serait sympa, parceque là je fatigue, j'ai passé l'aprem dessus

Le dire c'est bien, le faire c'est mieux ^^

4 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
31 mai 2005 à 18:41
Salut,



les documents word ne sont pas encodés comme des documents textes
ordinaires, bref tes espaces ne sont pas matérialisés par des espaces.

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_EricLeRouge Messages postés 46 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 7 décembre 2005
31 mai 2005 à 21:01
Ils sont matérialisés par quoi alors? Plus ca va, plus je trouve word horrible.....

Le dire c'est bien, le faire c'est mieux ^^
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
31 mai 2005 à 21:13
Aucune idée, ce que tu peux faire pour t'en rendre compte, c'est d'ouvrir un document word avec le bloc-notes, tu verras ^^

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_EricLeRouge Messages postés 46 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 7 décembre 2005
31 mai 2005 à 21:46
Les espaces sont bien pris en compte, d'aillerus dans le code que j'ai copier, j'ai utilisé explode sur l'espace, pourquoi ca ne repasserait pas ?

D'ailleurs je reconcatene ici :

$texte = "";


for($i=0;$i<$j;$i++)
$texte = $texte.' '.$tab[$i];

Alors où est le beug ?

Le dire c'est bien, le faire c'est mieux ^^
0
Rejoignez-nous