Мистика какая-то

Discussion in 'PHP' started by kik8888, 17 Nov 2008.

  1. kik8888

    kik8888 Elder - Старейшина

    Joined:
    29 Feb 2008
    Messages:
    45
    Likes Received:
    6
    Reputations:
    -4
    Ошибка в коде

    Ни как не могу понять почему скрипт выдает ошибку.
    Parse error : syntax error, unexpected '}' in kol.inc.php on line 25
    Скрипт должен считать сколько файлов в подкаталогах каталога folder.(там только подкаталоги и index.php)
    Помогите найти ошибку.
    PHP:
    <?
    function 
    kol($papka){

    $dp=opendir($papka);
    $f=array();
    $i=0;
    while(
    $file readdir($dp)){
      if(
    $file!="." && $file!=".." && $file!="index.php"){
        
    $f[$i]=$file;
        
    $i++;
      };
    };
    closedir($dp);
    $kol_papok=$i;

    $ii=0;
    foreach(
    $f as $v)
      
    $arr=scandir($papka."/".trim($v));
      echo 
    $ii=$ii+count($arr)-5;
    };
    //end foreach
    $kol=$ii;
    return 
    $kol;

    };
    //end function
    echo kol("/folder");
    ?>
    Пробывал убрать последнюю "}", получаю:
    Notice : Undefined variable: ii kol.inc.php on line 22
     
  2. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,980
    Likes Received:
    1,961
    Reputations:
    594
    Исправил, забыл откр. скобку:
    PHP:
    <? 
    function 
    kol($papka){ 

    $dp=opendir($papka); 
    $f=array(); 
    $i=0
    while(
    $file readdir($dp)){ 
      if(
    $file!="." && $file!=".." && $file!="index.php"){ 
        
    $f[$i]=$file
        
    $i++; 
      }; 
    }; 
    closedir($dp); 
    $kol_papok=$i

    $ii=0
    foreach(
    $f as $v) { //<- вот тут!
      
    $arr=scandir($papka."/".trim($v)); 
      echo 
    $ii=$ii+count($arr)-5
    };
    //end foreach 
    $kol=$ii
    return 
    $kol

    };
    //end function 
    echo kol("/folder"); 
    ?>
     
  3. Vid0k

    Vid0k Elder - Старейшина

    Joined:
    24 Dec 2007
    Messages:
    443
    Likes Received:
    125
    Reputations:
    13
    PHP:
    <? 
    function 
    kol($papka)


        
    $dp=opendir($papka); 
        
    $f=array(); 
        
    $i=0
            while(
    $file readdir($dp))
             { 
              if(
    $file!="." && $file!=".." && $file!="index.php")
              { 
                
    $f[$i]=$file
                
    $i++; 
              }
             } 
        
    closedir($dp); 
        
    $kol_papok=$i

        
    $ii=0
        foreach(
    $f as $v)
        { 
          
    $arr=scandir($papka."/".trim($v)); 
          echo 
    $ii=$ii+count($arr)-5
        }
    //end foreach 
    $kol=$ii
    return 
    $kol
    }
    //end function 
    echo kol("/folder"); 
    ?>
    проверь должно работать
    после скобок '}'циклов,операторов сравнения,ф-ий не надо ставить ';'
    и пропустил скобку после условия цикла foreach
     
  4. kik8888

    kik8888 Elder - Старейшина

    Joined:
    29 Feb 2008
    Messages:
    45
    Likes Received:
    6
    Reputations:
    -4
    Точно. Скобку то я и не заметил что не поставил. Спасибо.
    А с ";" это уже привычка выработалась везде ставить.
     
  5. kik8888

    kik8888 Elder - Старейшина

    Joined:
    29 Feb 2008
    Messages:
    45
    Likes Received:
    6
    Reputations:
    -4
    Пишу в новой теме, так как старую закрыли. Как не странно, но работать не стало. В комментах я написал что происходит.
    PHP:
    <?
    function 
    kol($papka){

    $dp=opendir($papka);
    $f=array();
    $i=0;
    while(
    $file readdir($dp)){
      if(
    $file!="." && $file!=".." && $file!="index.php"){
        
    $f[$i]=$file;
        
    $i++;
      };
    };
    closedir($dp);
    $kol_papok=$i;
    print_r($f);//выводит правильно
    $ii=0;
    foreach(
    $f as $v){
      
    print_r($arr=scandir($papka."/".trim($v)));//выводит правильно
      
    echo $ii=$ii+count($arr)-5;//выводит правильно, но в последнем повторении цикла ничего не выводит
    };//end foreach
    echo $kol=$ii;//ничего не выводит
    return $kol;

    };
    //end function
    echo kol("folder");//ничего не выводит
    ?>
    Млин, почему так...
     
  6. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    PHP:
    <?php

    $files  
    glob('folder/*/*.*');
    $amount count($files);

    echo 
    $amount;

    ?>
     
  7. Rebz

    Rebz Super Moderator
    Staff Member

    Joined:
    8 Nov 2004
    Messages:
    4,205
    Likes Received:
    1,509
    Reputations:
    1,126