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/>";
 }
}