Pues a mí me está sucediendo algo parecido, creo un array de palabras que quiero buscar, y repito la búsqueda en la cadena, tantas veces como palabras hay en el array, para comprobar que comprueba la posición de cada una de las palabras. El problema surge con que algunas palabras detecta la posición, y otras me dice que no existe. Cuando realmente existen todas la palabras.
Este es el código que tengo:
Código PHP:
<?php
$ruta = “archivo.txt”;
$temporada = array(" ", "Primera temporada", "Segunda temporada", "Tercera temporada", "Cuarta temporada", "Quinta temporada", "Sexta temporada", "Séptima temporada", "Octava temporada", "Novena temporada", "Decima temporada");
$rOpenFile = fopen ($ruta,"r");
while (!feof($rOpenFile)){
$CFs = fgets($rOpenFile,100000);
$CsFile = $CsFile.$CFs;
}
fclose($rOpenFile);
function BsLoc($par,$pos) {
global $CsFile;
$var1 = strpos($CsFile, $par, $pos);
return $var1;
}
$vas1 = 0;
for($n=1;$n<=10;$n++) {
$ST = $temporada[$n];
$vas1 = BsLoc($ST, $vas1);
if ($vas1) { $CoTotal[$n] = $vas1; }
else {$n = 11;}
echo $ST." – posición: ".$CoTotal[$n]."<br>";
}
$totaltemp = count($CoTotal);
El problema surge principalmente con cadenas, que contienen cientos, e incluso millones de caracteres, en cadenas cortas funciona correctamente. Puede ser que haya algún problema de php que no lea correctamente cadenas tan grandes?