Girando tra i vari script del web ho realizzato questo motorino per cercare una parola tra i files txt di una cartella e scrivere i risultati con tre parole avanti e indietro quella richiesta, assieme al link per visualizzarli.
Codice PHP:
$list = getNewsList();
foreach ($list as $value) {
$newsData = file("news/".$value);
$newsTitle = trim($newsData[0]);
$newsContent = trim($newsData[1]);
$newsArgument = trim($newsData[2]);
$newsMercato = trim($newsData[3]);
$filename = trim($newsData[4]);
unset ($newsData['0']);
unset ($newsData['1']);
unset ($newsData['2']);
unset ($newsData['3']);
unset ($newsData['4']);
$cercami=strpos($newsContent,$parola);
if ($cercami === false) {
echo "Nessuna parola trovata";
// break;
} else {
echo "[url='vedinews.php?numero=$filename'] $newsTitle [/url]
";
$dividiparole= explode (" ",$newsContent);
$chiave = array_search($parola, $dividiparole);
$i=$chiave;
$ifin=$chiave+3;
$iiniz=$chiave-3;
while ($i>$iiniz){
$prima=$dividiparole[$iiniz];
echo "$prima ";
$iiniz++;
}
echo "[b]$parola[/b] ";
while ($i<$ifin){
$dopo=$dividiparole[$i+1];
echo "$dopo ";
$i++;
}
//break;
}
}
Funziona, ma il mio problema sono i break (messi come commenti). Mi spiego con un esempio.
Mettiamo io abbia 2 files di testo: 1.txt con la parole "aria" e 2.txt con la parola "acqua", e voglio cercare qual'è quello con "acqua".
Se ci sono i break lui legge il primo file (in cui non c'è), dice che non l'ha trovato e si ferma.
Se NON ci sono legge il primo, dice non l'ha trovato e poi continua, così mi trovo anche la scritta "Nessuna parola trovata" assieme ai risultati.
Invertendo il true e false dell'if, per qualche motivo non mi funziona.
Cosa posso fare?