Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/07/2012, 17:34
rodrigow
 
Fecha de Ingreso: septiembre-2008
Mensajes: 66
Antigüedad: 15 años, 7 meses
Puntos: 0
php - file_get_content me bloquea una pagina

El problema es el siguiente, estoy tratando de crear una base de datos de letras de canciones sacando estas mismas de la página "azlyrics.com". Y me surge un problema cuando quiero pasar las letras a archivos txt.
Estoy utilizando el patrón de diseño modelo, vista, controlador (mvc).
El problema puntual es que cuando traigo todas las canciones ya guardadas en la base de datos y armo con ellas la url para entrar a la página donde se encuentra la letra de la misma, luego de unas 70 y pico de canciones me bloquea (entiendo yo) el servidor donde está alojada la página y no puedo seguir capturando las letras. Cuando finaliza, intento entrar a la página (azlyrics) y me tira el siguiente error:


Y hasta que no reinicio el router no puedo entrar otra vez a la misma.

public function letras()
{
require_once 'models/BuscarAzLyrics/letras.php';
require_once 'models/MySql/BuscarAzLyrics/mysql.php';
require_once 'models/BuscarAzLyrics/BuscarCodigo.php';

ini_set('memory_limit', '-1');
//Traigo todas las canciones
$canciones = new mysql;
$canciones->traerCancion();

//for ($i = 0; $i<sizeof($canciones->vectorConsulta); $i++)
for ($i = 0; $i<50; $i++)
{
set_time_limit(60*5);


//-->>Armo URL de la página con la letra de la canción y capturo el código
$urlCancion = $canciones->vectorConsulta[$i][6];//Traigo la parte final de la url
$url = 'http://www.azlyrics.com/' . $urlCancion;

$codigoUrl = file_get_contents($url);
echo $codigoUrl;
//Armo la ruta donde se va a guardar el archivo
$ruta = "letras/" . $canciones->vectorConsulta[$i][0] . ".txt";//vectorConsulta[$i][0] contiene el id de la canción
$fichero1 = new letras($ruta);//Cuando instancio al objeto le mando la ruta
echo $ruta . "<br />";

try{

if ($fichero1->abrir('a')){
$fichero1->guardarEnArchivo($codigoUrl[0]);//Mando al objeto el código a guardar dentro del archivo

$fichero1->cerrar();

}
else
echo '<br />error al abrir el fichero de lectura';

} catch (Exception $e){
echo $e->getMessage();
}//catch

}//for i
}