Prova questo. Non sono sicuro del funzionamento del calcolo della posizione.
Codice PHP:
<?php
function posParola($string,$parola) {
$len = strlen($parola);
$pattrn = "/(\b$parola\b)/msi";
$array = preg_split($pattrn , $string);
$arrayPos = array();
$posCumul = 0;
for ($i=0;$i<count($array)-1;$i++) {
$value = $array[$i];
$posCumul += strlen($value) + $len;
$pos = $posCumul - $len +1;
$arrayPos[] = $pos;
}
return $arrayPos;
}
$contenutoFile = file_get_contents('testo.txt');
$contenutoFile = 'roma roma roma caput mundi roma rinascens';
$parolaDaCercare = 'roma';
$posizioni = posParola($contenutoFile,$parolaDaCercare);
if (count($posizioni) == 0) {
print "Parola $parolaDaCercare assente";
} else {
print "Parola $parolaDaCercare trovata<br/>";
foreach ($posizioni as $value) {
print "Posizione $value<br/>";
}
}