Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как узнать сколько элиментов прошло через фореач

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
просто даня
Отправлено: 16 Июня, 2012 - 23:30:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Март 2012  
Откуда: sev-kav, budennovsk


Помог: 1 раз(а)

[+][+]


есть код такой:
PHP:
скопировать код в буфер обмена
  1.  
  2. function root($dir, $space) {
  3. $file = scandir($dir);
  4. foreach ($file as $files) {
  5. if (($files == '.') || ($files == '..')) continue;
  6. $root = $dir.'/'.$files;
  7. if(is_dir($root)) {
  8. echo $space.'<a href="d.php?d='.$root.'/">'.$files.'</a><br>';
  9. root($root, $space.'-');
  10. }
  11. if(preg_match("/.(txt|php|html|htm|js|htaccess|css|tmp|dat|ini|tpl|inc|log)$/i", $root))
  12. {
  13. echo $space.'<a href="editor.php?filename='.$root.'">'.$files.'</a><br>';
  14. }
  15. elseif(preg_match("/.(gif|jpg|jpeg|png|ico|bmp)$/i", $root))
  16. {
  17. echo $space.'<a href="'.$root.'">'.$files.'</a><br>';
  18. }
  19. elseif(preg_match("/.(zip|7zip|rar|tar|gz|tz)$/i", $root))
  20. {
  21. echo $space.'<a href="'.$root.'">'.$files.'</a><br>';
  22. }
  23. elseif(preg_match("/.(com|exe)$/i", $root))
  24. {
  25. echo $space.'<a href="'.$root.'">'.$files.'</a><br>';
  26. }
  27. }
  28. }
  29.  
- дерево сайта
как узнать точное число всех элиментов которые он вывел??
то есть например на сайте 5 папок и в каждой по 2 файла, как сделать чтоб он их подсчитал?? пробовал через count но здесь рекурсия не получаеться, или я просто чегото не доганяю((
 
 Top
Panoptik
Отправлено: 16 Июня, 2012 - 23:39:07
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




статические переменные или глобальные переменные


-----
Just do it
 
 Top
просто даня
Отправлено: 16 Июня, 2012 - 23:40:44
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Март 2012  
Откуда: sev-kav, budennovsk


Помог: 1 раз(а)

[+][+]


конечно спасибо ну было бы хорошо если бы я еще и узнал что это такое))
 
 Top
Panoptik
Отправлено: 16 Июня, 2012 - 23:43:57
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




просто даня пишет:
было бы хорошо если бы я еще и узнал что это такое))

да это было бы очень здорово Радость
http://php.su/learnphp/vars/?glvars
http://php.su/learnphp/vars/?statvars


-----
Just do it
 
 Top
просто даня
Отправлено: 16 Июня, 2012 - 23:44:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Март 2012  
Откуда: sev-kav, budennovsk


Помог: 1 раз(а)

[+][+]


Panoptikспасибо)
(Добавление)
неплохая статейка,с спасибо еще раз! теперь хоть знаю что это такое и как оно работает!
(Добавление)
ну не понял чем они мне могут помочь! лучше, если не хотите писать за меня, хоть подскажите как! мне стало интересно самому писать программы! вот сегодня взял и написал программу дерево сайта, а ведь мог найти в интернете! ну мне захотелось самому,думаю за лето я буду так же не плохо в этом размышлять как и вы!
 
 Top
Panoptik
Отправлено: 16 Июня, 2012 - 23:57:42
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




немного лирики: а зачем вообще кому-то дерево сайта? практичной ценности 0

по сабжу
если нужно просто полное количество файлов то вариант с глобальной переменной
функция положит в глобальную переменную количество, а вы делайте уже с этими данными что хотите
PHP:
скопировать код в буфер обмена
  1. function root($dir, $space) {
  2. global $count_files;
  3. $file = scandir($dir);
  4. foreach ($file as $files) {
  5. if (($files == '.') || ($files == '..')) continue;
  6. $root = $dir.'/'.$files;
  7. if(is_dir($root)) {
  8. echo $space.'<a href="d.php?d='.$root.'/">'.$files.'</a><br>';
  9. root($root, $space.'-');
  10. } else {
  11.   $count_files++;
  12. }
  13. if(preg_match("/.(txt|php|html|htm|js|htaccess|css|tmp|dat|ini|tpl|inc|log)$/i", $root))
  14. {
  15. echo $space.'<a href="editor.php?filename='.$root.'">'.$files.'</a><br>';
  16. }
  17. elseif(preg_match("/.(gif|jpg|jpeg|png|ico|bmp)$/i", $root))
  18. {
  19. echo $space.'<a href="'.$root.'">'.$files.'</a><br>';
  20. }
  21. elseif(preg_match("/.(zip|7zip|rar|tar|gz|tz)$/i", $root))
  22. {
  23. echo $space.'<a href="'.$root.'">'.$files.'</a><br>';
  24. }
  25. elseif(preg_match("/.(com|exe)$/i", $root))
  26. {
  27. echo $space.'<a href="'.$root.'">'.$files.'</a><br>';
  28. }
  29. }
  30. }
  31. //вызываем функцию
  32. $count_files = 0;
  33. root($dir, $space);
  34.  
  35. echo $count_files;
  36.  


-----
Just do it
 
 Top
Medallion
Отправлено: 17 Июня, 2012 - 07:15:19
Post Id



Частый гость


Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012  
Откуда: Херсон, Украина


Помог: 7 раз(а)




Просто... В цикл счётчик засунуть.
Пример.
PHP:
скопировать код в буфер обмена
  1.  
  2. $i = 0; // Присваиваем переменной значение ноль
  3. foreach($array as $key => $value) {
  4.     $i++; // увеличение за каждый проход на +1
  5. }
  6. echo $i; // в итоге количество проходов в цикле
  7.  

(Отредактировано автором: 17 Июня, 2012 - 07:27:46)

 
 Top
просто даня
Отправлено: 17 Июня, 2012 - 10:52:44
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Март 2012  
Откуда: sev-kav, budennovsk


Помог: 1 раз(а)

[+][+]


последний вариант мне больше нравиться спасибо, както сам не додумался...
(Добавление)
последний вариант не фурычит)) воспользовался предпоследним, спасибо+
 
 Top
Medallion
Отправлено: 17 Июня, 2012 - 11:16:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012  
Откуда: Херсон, Украина


Помог: 7 раз(а)




просто даня пишет:
последний вариант не фурычит))

Последний вариант и предпоследний: всё одинаково!
Я показал пример, он показал рабочий код.
Та же переменная локальная, которая с указанием global делается глобальной.
Можно было вернуть переменную с помощью оператора return
 
 Top
просто даня
Отправлено: 17 Июня, 2012 - 11:23:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Март 2012  
Откуда: sev-kav, budennovsk


Помог: 1 раз(а)

[+][+]


да ладно, с этим я ужу разобрался, спасибо Panoptik`y
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB