Salve a tutti

Sono giorni che cerco di scrivere uno script che inserendo un link carichi la pagina e cerchi se al suo interno sono presenti 2 stringhe (verso la fine della pagina) e nel caso non le trovasse deve caricare un altro file e cercare un'altra stringa.

E nel caso non sia ancora sufficiente carica un terzo file e cerca un'altra string ancora diversa.


Ora la 2° e la 3° pagina che carica sono piccole e non c'è problema però la 1° pagina può variare parecchio in un range da "piccolo" a "grande" (parlando di volume di dati ovviamente) e spesso lo script mi da timeout di esecuzione.

Ecco il codice che uso:
Codice PHP:
<?php
$link 
"questa variabile viene settata dall'input di un form";

$handle = @fopen$link"r" );

if ( 
$handle !== false )
{
    @
fclose$handle );
    
    
$content = @file_get_contents($link);
}
else if ( 
function_exists'curl_init' ) )
{
    
$ch curl_init();
    
    
curl_setopt$chCURLOPT_URL$link );
    
curl_setopt$chCURLOPT_HEADER);
    
    
ob_start();
    
    
curl_exec$ch );
    
curl_close$ch );
    
    
$content ob_get_contents();
    
    
ob_end_clean();
}

$content substr($content, -3000);

$r1 stripos($content"prima stringa da cercare");
$r2 stripos($content"seconda stringa da cercare");

// se il check non è ok ontinua col prossimo

$link2 "questo secondo link viene ricavato dal primo aggiungengo /style_images alla fine.";

$handle = @fopen$link2"r" );

if ( 
$handle !== false )
{
    @
fclose$handle );
    
    
$content2 file_get_contents($link2);
}
else if ( 
function_exists'curl_init' ) )
{
    
$ch curl_init();
    
    
curl_setopt$chCURLOPT_URL$link2 );
    
curl_setopt$chCURLOPT_HEADER);
    
    
ob_start();
    
    
curl_exec$ch );
    
curl_close$ch );
    
    
$content2 ob_get_contents();
    
    
ob_end_clean();
}

$r3 stripos($content2"terza string da cercare");

// qui controlla il terzo file che è sempre ricavato dal primo e poi lo script continua

?>
Qualcuno ha idee su come potrei ottimizzare il codice o su un modo più veloce di effettuare il controllo?