Ciao a tutti, sto combattendo da stamattina con un problemino che mi da la funzione strcmp di php il codice è questo:
Codice PHP:
function findString($testo, $parola)
{
$testo = str_replace ( "," , " " , $testo);
$testo = str_replace ( "." , " " , $testo);
$testo = str_replace ( ";" , " " , $testo);
$testo = str_replace ( ":" , " " , $testo);
$testo = str_replace ( ")" , " " , $testo);
$testo = str_replace ( "(" , " " , $testo);
$testo = str_replace ( "-" , " " , $testo);
$parola=trim($parola);
$testo_split=explode (" " , $testo);
$lungh_testo= count($testo_split);
/*echo "--------------------".$lungh_testo."----------------";
echo "<font color=green>";
for($i=0; $i < $lungh_testo; $i++)
{
echo $testo_split[$i]." ".$i."
";
}
echo "</font>";*/
$count=0;
$arrary_parola=explode (" " , $parola);
$lungh_parola= count($parola);
//echo $testo."
";
if($lungh_parola==1)
{
for($i=0; $i<$lungh_testo; $i++)
{
//echo $i."
";
$test="";
$test=$testo_split[$i];
echo $parola."->".$test." ".$i." strcmp ".strcmp((string)$test,(string)$parola)."
";
if(strcmp($parola,$testo_split[$i])==0)
{
echo "<font color=red>".$parola."->".$testo_split[$i]." ".$i."</font>
";
return true;
}
}
}
else if($lungh_parola>1)
{
$cont=0;
while($cont<$lungh_parola)
{
for($i=0; $i<$lungh_testo; $i++)
{
//echo $parola."->".$testo_split[$i]."
";
if(strcmp($parola,$testo_split[$i])==0)
{
return true;
}
}
$cont++;
}
}
return false;
}
in poche parole è una funzione che mi cerca se dentro un testo vi sono delle parole, da premettere che non ho usato strpos perchè anche quella mi dava problemi(e tutto sommato volevo provare a fare io una funzione). ho fatto delle stampe, per esempio ho provato a cercare la parola "cessionario" nel testo e ho fatto delle stampre una porzione delle stampe è questa:
cessionario->un 88 strcmp -1
cessionario->ente 89 strcmp -1
cessionario->locale 90 strcmp -1
cessionario-> 91 strcmp -1
cessionario->ma 92 strcmp -1
cessionario->in 93 strcmp -1
cessionario->cui 94 strcmp -1
cessionario->il 95 strcmp -1
cessionario->cessionario 96 strcmp -1
cessionario-> 97 strcmp -1
cessionario->diversamente 98 strcmp -1
cessionario->da 99 strcmp -1
cessionario->quanto 100 strcmp -1
cessionario->previsto 101 strcmp -1
cessionario->dal 102 strcmp -1
come si può notare la riga in grassetto ha due stringhe ugualissime ma strcmp mi da comunque -1 anzichè 0.
PERCHE'