Foros del Web » Programando para Internet » PHP »

tengo dos preguntas :D

Estas en el tema de tengo dos preguntas :D en el foro de PHP en Foros del Web. mirad el codigo: Código PHP: echo "<br><br>" ;      $i  = 1 ;      $files  = array ();      $myDirectory  =  opendir ( $mypath );     echo  "<table width='$table_width' bgcolor = '$table_bg_color' border ='$table_border' cellpadding='5' cellspacing='3' align=left><tr>" ...
  #1 (permalink)  
Antiguo 22/07/2004, 10:37
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
tengo dos preguntas :D

mirad el codigo:
Código PHP:
echo"<br><br>";
    
$i =1;
    
$files = array ();
    
$myDirectory opendir($mypath);
    echo 
"<table width='$table_width' bgcolor = '$table_bg_color' border ='$table_border' cellpadding='5' cellspacing='3' align=left><tr>";
    
$panaunde=$pagina*$nrppagina;
    
$deunde=($pagina-1)*$nrppagina;
    
$contor=0;
    
$contor2=0;
    
    while (
$file readdir($myDirectory)) {
    
$contor2++;
    if(
$contor>=$deunde and $contor<$panaunde)
    {
    if ((
$file != ".") && ($file != "..") && ($file != "index.php") && !(is_dir("$mypath"."$file")) )
    {
    
$files[] = $file;
    if (
is_int($i $cols)) {
    list(
$width$height) = getimagesize("$mypath"."$file"); 
    echo 
"<td align='center' valign=top style='border: 1px solid black' bgcolor=#333333>"
ahora mis preguntas,como lo puedo hacer para contar el resultado total de imagenes?si pongo: $total = count($files); solo me cuenta los que se estan mostrando en ese momento,y mi segunda pregunta como veispuede leer_subdirectorios el script......no se porque no me los lee:( si creo una carpeta dentro del directorio con imagenes no me las lee :( xk?GRACIAS:D

weno aprovecho para hacer otra pregunta:$ como puedo mostrar la fecha de a imagen,su tamaño y medidas?gracias quizas hice demasiadas preguntas :$
  #2 (permalink)  
Antiguo 22/07/2004, 11:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
EL tema de contar el nº total de archivos que tienes .. en $file (ese array) los tienes, pero fijate que la lectura de un directorio es "secuencial" .. así que count($file) lo tendrías que poner fuera de tu bucle while() que es el que obtiene esos archivos que según ese IF() que usas genera el array de archivos sólo (sin directorios o entradas de directorios).

El tema de las medidas de la imagen (si es que fuese una imagen ..) ya lo haces en:
list($width, $height) = getimagesize("$mypath"."$file");

ese $width y $height son las medidas.

El tamaño de un archivo lo puedes obtener con filesize() y la fecha (¿de què?) tienes otras funciones para tal fin: fileatime(), filemtime() .. etc ..

Por lo demás .. ese código que pusistes no tiene pinta de leer subdirectorios (archivos en ellos) . .no hace ninguna llamada recursiva a si mismo (sería una función todo eso) para pasarle un directorio y que se meta en el para leer sus archivos y almacenarlos en tu $file array ...

Un saludo,
  #3 (permalink)  
Antiguo 22/07/2004, 11:35
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
gracias cluster ;) digo o de los sub_directorios porque tiene la funcion"!(is_dir("$mypath"."$file")) )"y ademas si pongo un subdirectorio con imagenes y super las imagenes a mostrar,me crea la pagina siguiente pero no se ve nada :(

gracias cluster :D como siempre rapido y exacto ;)
  #4 (permalink)  
Antiguo 22/07/2004, 12:54
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
AAAAAAAAAAAAGGHRHRHRHGRGHR dios necesito ayuda:
Código PHP:
echo"<br><br>";
    
$i =1;
    
$files = array ();
    
$myDirectory opendir($mypath);
    echo 
"<table width='$table_width' bgcolor = '$table_bg_color' border ='$table_border' cellpadding='5' cellspacing='3' align=left><tr>";
    
$panaunde=$pagina*$nrppagina;
    
$deunde=($pagina-1)*$nrppagina;
    
$contor=0;
    
$contor2=0;
    while (
$file readdir($myDirectory)) {
    
$contor2++;
    if(
$contor>=$deunde and $contor<$panaunde)
    {
    if ((
$file != ".") && ($file != "..") && ($file != "ver_imagenes.php") && !(is_dir("$mypath"."$file")) )
    {
    
$files[] = $file;
    if (
is_int($i $cols)) {
    list(
$width$height) = getimagesize("$mypath"."$file"); 
    
$total count($files);

    echo 
"$total<td align='center' valign=top style='border: 1px solid black' bgcolor=#333333>";
    
?> 
no se como hacer el recuento :( lo he intentado todo pero no lo consigo(eso es lo malo de sar scripts de la red...que nunca consigo entenderlos al 100% y me dan problemas por eso xD)
como veis he puesto $total = count($files) pero me pone 3,6,9 etc.....solo quiero que me ponga el resultado total :( help me please

gracias
  #5 (permalink)  
Antiguo 22/07/2004, 13:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Vamos a ver .. "is_dir()" sólo te dice "esta ruta que me dás .. es un direcctorio" y listo . no hace nada más. Se usa como veras para que no se añada a tu lista de archivos en $file (en ese array) nombres de directorio y sólo de archivos ..

Sobre tu problema .. ya te comenté que TINES que sacar FUERA de ese bucle while() el count($file) ...

pero, .. en ese código que pusistes NO se vé donde cierras tu bucle while (){ ....} (ni los if() .. ) Es bueno que abras y cierres los bucles o if() y demás instrucciones que lo usen y no "asumas" que si no hay nada más abajo que ejecutar ya se "cerrará" .. así vienen los problemas cuando empiezas a "anidar" bucles.. condicionales .. etc.

Un saludo,
  #6 (permalink)  
Antiguo 22/07/2004, 13:50
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
aqui esta el codigo:( si pongo el count al final de todo donde ya estan todos cerrados(en teoria....)me cuenta los que se estan mostrando.

Código PHP:
<?
            
include('settings.php');
include(
'path.php');

if ( 
$cat != "" )
{
$i =1;
    
$files = array ();
    
$myDirectory opendir($mypath);
    echo 
"<table width='$table_width' bgcolor = '$table_bg_color' border ='$table_border' cellpadding='5' cellspacing='0'><tr>";
    
$verify=0;
    while (
$file readdir($myDirectory)) {
    
$verify++;
    if(
$verify>2){$nrpoze++;}
    }
    
closedir($myDirectory);
    
$peri=$nrpoze%$nrppagina;
    if (
$peri!=0)
    {    
$totpg=(int)($nrpoze/$nrppagina);$totpg=$totpg+1;} else { $totpg=(int)($nrpoze/$nrppagina) ;}
echo
"<font class='texto2'>Escoge la página que deseas ver : | </font>";
    for(
$zz=1;$zz<=$totpg;$zz++)
    {

        if ( 
$zz == $pagina )
        {
        echo 
"<b><font class='texto'>$zz</font></b> | </font>";        
        
        }
        else
        {
        echo 
"<a href=\"http://localhost/index.php?seccion=ver&cat=$cat&pag=$zz&name=$name\"><font class='texto2'><b>$zz</b></font></a> | </font>";        
        }
        
    }
    
echo
"<br><br>";
    
$i =1;
    
$files = array ();
    
$myDirectory opendir($mypath);
    echo 
"<table width='$table_width' bgcolor = '$table_bg_color' border ='$table_border' cellpadding='5' cellspacing='3' align=left><tr>";
    
$panaunde=$pagina*$nrppagina;
    
$deunde=($pagina-1)*$nrppagina;
    
$contor=0;
    
$contor2=0;
    while (
$file readdir($myDirectory)) {
    
$contor2++;
    if(
$contor>=$deunde and $contor<$panaunde)
    {
    if ((
$file != ".") && ($file != "..") && ($file != "ver.php") && !(is_dir("$mypath"."$file")) )
    {
    
$files[] = $file;
    if (
is_int($i $cols)) {
    list(
$width$height) = getimagesize("$mypath"."$file"); 
    echo 
"$total<td align='center' valign=top style='border: 1px solid black' bgcolor=#333333>";
    
?>
    <?
    
echo "<input type=image style=\"border: 1px solid black\" src=\"phpThumb.php?src=/$mypath$file&w=$thumbsize\"  onClick=\"window.open('popup.php?1=$mypath&2=$file','lol','width=$width,height=$height,directories=no,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=no,left=0,top=0,screenX=0,screenY=0');return false\"><br><font class='texto2'>&nbsp;Medidas: $width x $height</font>";
    echo 
"</td></tr><tr>";
    }
    else
    {
    list(
$width$height$type$attr) = getimagesize("$mypath"."$file");   
    echo 
"<td align='center' valign=top style='border: 1px solid black' bgcolor=#333333>";
    
?>
    <?
    
echo "<input type=image style=\"border: 1px solid black\" src=\"phpThumb.php?src=/$mypath$file&w=$thumbsize\" onClick=\"window.open('popup.php?1=$mypath&2=$file','lol','width=$width,height=$height,directories=no,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=no,left=0,top=0,screenX=0,screenY=0');return false\"><br><font face=verdana size=1>&nbsp;Medidas: $filesize  $width x $height</font>";
    echo 
"</td>";
    }
    
$i++;
    }
    }
    if(
$contor2>2)
    {
    
$contor++;
    }
    }
    
$total count($files);
    echo 
"Hay un total de $total imágenes</tr></table>
    "
;
    }
    
closedir($myDirectory);
    
?>
pongo el codigo entero porque quizas asi sea mejor bueno voy a seguir mirando ;) gracias cluster
  #7 (permalink)  
Antiguo 22/07/2004, 16:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. ahora que problema tienes (o que es eso de "contar los que ahí me muestra"? que archivos de más quieres que se cuenten?)

Para otra vez .... mm podrías identar el código:

Código PHP:
while (tal){
  if (
tal){
     if (
tal){
     }
  }

por qué así todos los }{ seguidos no se vé bien (a simple vista) donde abres y cierras cada bucle() . .condicional o similar...

Un saludo,
  #8 (permalink)  
Antiguo 22/07/2004, 16:26
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
como creo que dije el script no es mio es bajado de la red yo lo estoy adaptando a mis "necesidades";) pues quiero que me cuente todas las imagenes del directorio pero solo me cuenta las 18 que se muestran(se muestran en paginas de 18 cada una)
  #9 (permalink)  
Antiguo 22/07/2004, 17:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
(podrías haber dicho antes que tu script "pagina" ... )

Parecer que tu $contor2 es el "contador" que podrías usar para ver el total real de archivos .. pero ahí veras también los directorios/subdirectorios, ese . y .. y el ver.php contabilizados.

para solventar ese problema tendrías que aplicar un condicional tipo:

Código PHP:
    if (($file != ".") && ($file != "..") && ($file != "ver.php") && !(is_dir("$mypath"."$file")) ) 
    { 
    
$contador2++; 
   } 
Para ver si ha de contar o no tu contador2. Pero se vé que más abajo haces un if() con $contador2 ..

En fin .. llegado este punto por mi parte preferíria aprender las 4 funciones que ahí ves que se usan y hacerlo tu mismo desde cero y a tu gusto ... "parchear" nuca fué bueno ... (y todo lo que te comento es "sin probar" el script .. así que te toca a tí "investigar" que sucede con el script .. y que algorítmo sigue .. Suele ser más complicado aplicar "ingenería inversa": de lo que hay hecho .. saber como funciona .. que tomar la teoría de lo que necesitas y esas 4 funciones y hacerlo sabiendo lo que haces ...

Un saludo,
  #10 (permalink)  
Antiguo 22/07/2004, 17:18
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
ok,gracias cluster :D esta noche intentare solucionarlo,en caso de no poder ;) hare lo que dices y terminare por hacerlo desde 0.....como el rsto de scripts que uso xD siempre termino haciendolos desde 0...por lo que dices :D si se hace desde 0 se como va ;) enfin gracias
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 17:16.