Foros del Web » Programando para Internet » PHP »

¿Mi problema es PHP, PHP.INI o EL APACHE?

Estas en el tema de ¿Mi problema es PHP, PHP.INI o EL APACHE? en el foro de PHP en Foros del Web. Hola muchahcos, he creado un codigo precario, el cual tiene la intencion de 1) examina todos los archivos de un directorio. 2) luego examina si ...
  #1 (permalink)  
Antiguo 26/05/2006, 13:44
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 12 años, 6 meses
Puntos: 1
¿Mi problema es PHP, PHP.INI o EL APACHE?

Hola muchahcos, he creado un codigo precario, el cual tiene la intencion de
1) examina todos los archivos de un directorio.
2) luego examina si ese archivo se encuentra en 2 directorios mas.
3) Si es asi,los paso a un array, luego procedo a abrir cada archivo de una de las 3 carpetas, lo pongo en una variable y le extraigo inforacion.

Mi problema es que a los mas o menos 43 archivos se PARA EL PROGRAMA, no repsonde se queda pensando hasta morir,. Los archivos existen, pero es como que se desborda algo o nose. Nose si es el apache, mi codigo, o el php.ini. Ayudenme, tengo que abrir como 10.000 archivos en mi pc para poner datos en una base de datos ya que estoy aprendidendo PHP y estoy desesperado. Desde Ya muchas GRA CIAS.



<?php
$dir = "tor";
$contador=0;
if ($A = opendir($dir)) {
$contador=0;
while (($B = readdir($A))!=FALSE) {
if ($B != "." && $B != ".." && ereg('.',$B))
{
$nombre_archivo="det/".$B;
if (file_exists($nombre_archivo)) {
clearstatcache();
$nombre_archivo2="get/".$B;
if (file_exists($nombre_archivo2)) {
//echo "<p>El archivo $B existe en los 3</p>";
$probar[$contador]=$B;
$contador ++;
clearstatcache();
}
}
}
}//While
closedir($A);

}//If Principal


for($i=0;$i<$contador;$i++)
{
echo "Los Archivos Son:".$probar[$i];
gabriel($probar[$i]);
}


function gabriel($numerotorrent)
{

$archivo="det/".$numerotorrent;

$fp = fopen($archivo,r);
$urlvariable = fread ($fp, filesize ($archivo));
fclose($fp);
clearstatcache();
$taginicio="Info hash:</td><td>";
$tagfin="</td></tr>";
$opcional=0;
$posicion=strpos($urlvariable,$taginicio);
$urlvariable= substr ($urlvariable, $posicion + strlen($taginicio) + $opcional);
$posicionfin=strpos($urlvariable, $tagfin);
$infohash=substr ($urlvariable,0, $posicionfin);
unset($posicion);
unset($urlvariable);
unset($posicionfin);
echo "<p>Hash: ".$infohash."</p>\n";
unset($infohash);

}

?>
  #2 (permalink)  
Antiguo 26/05/2006, 14:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Ayudenme, tengo que abrir como 10.000 archivos en mi pc para poner datos en una base de datos ya que estoy aprendidendo PHP y estoy desesperado
Esto es demasiado para un script que no es "compilado" como es tu caso de un script PHP que es "interpretado" .. Deberías ver otras soluciones en otros lenguajes ... (algo en C? .. en Perl? .. no sé ..)

De todas formas .. si quieres hacerlo con PHP .. recuerda (o te lo comento por si lo desconoces) que PHP impone várias restricciones a los scrpts que puedas ejecutar: de tipo tiempo de ejecución, de memoria consumida por el script .. (entre otros).

Deberías partir por aumentar el tiempo de ejecución de tu script:

set_time_limit() (ajustalo al valor en segundos que estimes que el script va a tardar o a 0 (cero) para que tarde lo que tarde el script).
www.php.net/set_time_limit

Pero .. lo dicho, con tantos datos .. es muy probable que tu scritp consuma muchos recursos de memoria .. En este caso el ajuste se hace desde php.ini -sólo- y depende a su vez de los recursos de tu servidor (memoria) en la directiva: memory_limit (me parece que es esa directiva ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:13.