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( $ch, CURLOPT_URL, $link );
curl_setopt( $ch, CURLOPT_HEADER, 0 );
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( $ch, CURLOPT_URL, $link2 );
curl_setopt( $ch, CURLOPT_HEADER, 0 );
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?