Foros del Web » Programando para Internet » PHP »

Duda con este codigo fuente

Estas en el tema de Duda con este codigo fuente en el foro de PHP en Foros del Web. Hola muchachos, tengo el siguiente problema y no puedo solucionarlo con nada, no me estoy dando cuenta que pasa. Lo que me sucede es que ...
  #1 (permalink)  
Antiguo 26/05/2006, 01:21
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 12 años, 6 meses
Puntos: 1
De acuerdo Duda con este codigo fuente

Hola muchachos, tengo el siguiente problema y no puedo solucionarlo con nada, no me estoy dando cuenta que pasa. Lo que me sucede es que luego de comprobar si varios archivos se encuentra en 3 directorios, grabo los nombres en un array. Despues trato por ejemplo de mostrar el nombre que esta en alguna posicion del array, con esto:
echo $directorio[0]; El codigo se para al llegar en esta linea como esperando algo y nunca sucede nada, pero si saco ese echo $directorio[0]; el codigo funciona lo mas bien.
Por Favor necesito ayuda. Este es mi codigo:

<?php


// Con esto leo el nombre de todos los archivos de un directorio
$dir = "tor";
$contador=0;
if ($A = opendir($dir)) {
while (($B = readdir($A))!=FALSE) {
if ($B != "." && $B != ".." && ereg('.',$B))
{
comprobar($B); //Luego llamo a una funcion
}
}
closedir($A);
}


function comprobar($num)
{
// En esta funcion busco el nombre del archivo en otros 2 directorios
$contador=0;
$nombre_archivo="det/".$num;
if (file_exists($nombre_archivo)) {//Busco Si el archivo existe en eldirectorio 2
$nombre_archivo2="get/".$num;
if (file_exists($nombre_archivo2)) { //Busco en el directorio 3
echo " El archivo $nombre_archivo existe en los 3 Directorios</p>";

//Si esta en los 3 directorios grabo su nombre
$directorio[$contador]=$num;

$contador++;
}


}


//PROBLEMA al intentar leer la posicion
//echo $directorio[0];
//
}
?>



PD: Aclaro que lee una gran cantidad de archivos nose aprox. 40.000 ¿podra ser que el array no soporte tantas posiciones?

PD: Alguna idea si no es asi?


Desde ya muchas Gracias amigos.
  #2 (permalink)  
Antiguo 26/05/2006, 01:55
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 14 años
Puntos: 19
La variable contador, para que le pones valor 0 y despues la incrementas ? eso se hace cuando tenes alguna bucle repetitivo .. yo solo veo IF ... y solo se incrementa cuando se encuentra en el directorio 3...
tene en cuenta que cada ves que llames a la funcion comprobar la variable $contador se iniciara con el valor 0

yo nosé si lo que queres hacer deberia ser asi ya que no lo entiendo pero de todas formas me arriesgo ..

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

?>
Esto si te va a cargar un vector con el nombre de los archivos que esten en los tres directorios !!!
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #3 (permalink)  
Antiguo 26/05/2006, 12:06
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 12 años, 6 meses
Puntos: 1
El codigo no Funciona

Master..me sique poniendo lo mismo, al querer imprimir lo que hay en el array. Se me cuelga el script. Alguna idea?
  #4 (permalink)  
Antiguo 26/05/2006, 13:26
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 14 años
Puntos: 19
probaste en un directorio con menos archivos a ver si funciona ??

saludos
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #5 (permalink)  
Antiguo 26/05/2006, 13:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 11 años, 6 meses
Puntos: 2122
Código PHP:
<?php


// Con esto leo el nombre de todos los archivos de un directorio
$dir "tor";
$contador=0;
if (
$A opendir($dir)) {
while ((
$B readdir($A))!=FALSE) {
if (
$B != "." && $B != ".." && ereg('.',$B))
{
comprobar($B); //Luego llamo a una funcion
}
}
closedir($A);
}


function 
comprobar($num)
{
// En esta funcion busco el nombre del archivo en otros 2 directorios
global $contador;
global 
$directorio;
$nombre_archivo="det/".$num;
if (
file_exists($nombre_archivo)) {//Busco Si el archivo existe en eldirectorio 2
$nombre_archivo2="get/".$num;
if (
file_exists($nombre_archivo2)) { //Busco en el directorio 3
echo " El archivo $nombre_archivo existe en los 3 Directorios</p>";

//Si esta en los 3 directorios grabo su nombre
$directorio[$contador]=$num;

$contador++;
}


}


//PROBLEMA al intentar leer la posicion
//echo $directorio[0];
//
}
?>
  #6 (permalink)  
Antiguo 26/05/2006, 13:49
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 12 años, 6 meses
Puntos: 1
Gracias GatorV Ya no se cuelga mas. Tmabien gracias a las personas que me contestaron, la verdad son unos GRANDES. ABRAZO A TODOS!!!
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

SíEste tema le ha gustado a 1 personas




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