Siguiendo el hilo de este tema, un par de soluciones:
   Código PHP:
    //=================================================================
function buscaCadena_opc1($cadena){
    $lineas = file('archivo.txt',FILE_IGNORE_NEW_LINES);
    foreach($lineas as $linea){
        if(strpos($linea,$cadena)!==false)
        {
            echo $linea."<br />";
        }
    }
}
//=================================================================
function buscaCadena_opc2($cadena){
    $fd = fopen ("archivo.txt", "r");
    while (!feof ($fd)) 
    {
           $linea = fgets($fd, 4096);
        if(strpos($linea,$cadena)!==false)
        {
            echo $linea."<br />";
        }
    }
    fclose ($fd);
}
//=================================================================
 
//=================================================================
ini_set("memory_limit","300M");
$tiempo_inicio = microtime(true);
buscaCadena_opc1("como");
$tiempo_final = microtime(true);
$tiempo = $tiempo_final - $tiempo_inicio;
echo "Tiempo de ejecución para [buscaCadena_opc1] = $tiempo"."<br />";
//--------------
$tiempo_inicio = microtime(true);
buscaCadena_opc2("como");
$tiempo_final = microtime(true);
$tiempo = $tiempo_final - $tiempo_inicio;
echo "Tiempo de ejecución para [buscaCadena_opc2] = $tiempo";
//=================================================================