Buenas, tengo este codigo, lo que me pasa esque puede llevarse mas de 1.30 minuto al poner por ejemplo 1.000 lineas de codigo en el textarea.
Lo que hace el script es, guarda en una array cada uno de los saltos de linea y crea otro array en el que elimina las lineas vacidas[Saltos de lineas vacidos] y posteriormente, hago varias comprobaciones con cada linea.
Código PHP:
if(@$_GET['id'] == 'upload_validate'):
session_start();
ini_set('max_execution_time', 300);
if(!isset($_SESSION['username'])):
echo 'Tienes que iniciar session';
elseif(empty($_POST['language'])):
echo 'Selecciona el lenguaje.';
elseif(empty($_POST['serie'])):
echo 'Selecciona la serie.';
elseif(empty($_POST['code'])):
echo 'Debes introducir almenos 1 enlace.';
else:
$code = explode("\n",$_POST['code']);
//Eliminar los espacios en blanco
$code_good = array();
foreach($code as $n => $value):
if(strlen($value) >= 5):
$code_good[] = $value;
else:
unset($code[$n]);
endif;
endforeach;
if(empty($_POST['temporada']) && empty($_POST['capitulo'])):
foreach($code_good as $n => $value):
$enlace = explode(' ',$value); //Enlace[1]
@$enlace[1] = trim($enlace[1]);
@$temporada = explode('x',$enlace[0]); //Temporada[0] Temporada[1]
if(!preg_match('/^([\0-9]+)x([0-9]+) \b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i',$value)):
echo 'La estructura('.$value.') es incorrecta.';
exit();
else:
$enlace1[1] = $enlace[1];
$check_url = explode('://', $enlace[1]);
$check_url1 = explode('/', $check_url[1]);
$enlace[1] = $check_url[0].'://'.$check_url1[0];
$url1 = $database->runQuery("SELECT type FROM login_url WHERE url = '".$enlace[1]."'");
if($url2 = mysqli_fetch_assoc($url1)):
//Enlace
$enlace2 = $database->runQuery("SELECT enlace FROM enlace WHERE enlace = '".mysqli_real_escape_string($db, $value)."'");
if($enlace3 = mysqli_fetch_assoc($enlace2)):
echo 'El enlace('.$value.') ya ha sido publicado.<br>';
exit();
endif;
else:
echo 'La URL('.$enlace1[1].') no esta permitida en nuestra base de dato.';
exit();
endif;
endif;
endforeach;
else:
foreach($code_good as $n => $value):
$value = trim($value);
if(!preg_match('/^\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i',$value)):
echo 'La estructura('.$value.') es incorrecta.';
exit();
elseif(filter_var($value, FILTER_VALIDATE_URL) === false):
echo 'La pagina web('.$value.') es incorrecta.';
exit();
else:
$value1 = $value;
$check_url = explode('://', $value);
$check_url1 = explode('/', $check_url[1]);
$value = $check_url[0].'://'.$check_url1[0];
$url1 = $database->runQuery("SELECT type FROM login_url WHERE url = '".$value."'");
if($url2 = mysqli_fetch_assoc($url1)):
//Enlace
$enlace2 = $database->runQuery("SELECT enlace FROM enlace WHERE enlace = '".mysqli_real_escape_string($db, $value1)."'");
if($enlace3 = mysqli_fetch_assoc($enlace2)):
echo 'El enlace('.$value1.') ya ha sido publicado.<br>';
exit();
endif;
else:
echo 'La URL('.$value1.') no esta permitida en nuestra base de dato.';
exit();
endif;
endif;
endforeach;
endif;
endif;
endif;
Saludos y gracias.