PHP.SU

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

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

> Найдено сообщений: 8
dimcrash Отправлено: 08 Августа, 2011 - 10:20:54 • Тема: Рекурсия функции • Форум: Если скрипт не работает

Ответов: 4
Просмотров: 3399
DeepVarvar, спасибо! Все работает!
dimcrash Отправлено: 08 Августа, 2011 - 08:09:07 • Тема: Рекурсия функции • Форум: Если скрипт не работает

Ответов: 4
Просмотров: 3399
DeepVarvar пишет:
if(is_dir($item)) ....

Так он вообще не открывает каталоги, а сканирует только заданную директорию
dimcrash Отправлено: 08 Августа, 2011 - 07:58:03 • Тема: Рекурсия функции • Форум: Если скрипт не работает

Ответов: 4
Просмотров: 3399
У меня проблема:
Нужно постороить дерево файлов. Если встречается каталог, то функция вызывает сама себя.

PHP:
скопировать код в буфер обмена
  1. function scan($dir) {
  2.  
  3. $files = scandir($dir);
  4.  
  5. foreach($files as $item) {
  6. if($item == "." or $item == "..") continue;
  7. echo $item . "<br />";
  8. if(is_dir("/" . $item)) scan($dir . "/" . $item);
  9.  
  10. }
  11. }
  12.  
  13. scan("J:/");


Но здесь она вызывает себя лишь один раз, то есть отображаются файлы лишь на один уровень ниже. Например:

J:/
...home
......192.168.0.102

вместо

J:/
...home
......192.168.0.102
.........www
............и т.д.

Почему это происходит?
dimcrash Отправлено: 08 Августа, 2011 - 06:57:30 • Тема: Дерево каталогов • Форум: Если скрипт не работает

Ответов: 6
Просмотров: 3127
Каталог указываю правильно, он сканирует, но вместо, например, этого:
J:/
home
192.168.0.102
www

Он выдает лишь:
J:/
home
192.168.0.102

И не сканирует дальше
dimcrash Отправлено: 05 Августа, 2011 - 12:10:34 • Тема: Дерево каталогов • Форум: Если скрипт не работает

Ответов: 6
Просмотров: 3127
И все равно ниже чем на 1 ур у меня не выводит Нет
dimcrash Отправлено: 05 Августа, 2011 - 10:56:26 • Тема: Дерево каталогов • Форум: Если скрипт не работает

Ответов: 6
Просмотров: 3127
Хочу сделать дерево каталогов.
Пока вот такой вот скрипт:
PHP:
скопировать код в буфер обмена
  1. $path = "J:/";
  2. $ndir = $path;
  3. $olddir = $path;
  4. $space = NULL;
  5.  
  6. function filestree() {
  7. GLOBAL $path;
  8. GLOBAL $ndir;
  9. GLOBAL $olddir;
  10. GLOBAL $space;
  11.  
  12. $files = scandir($path);
  13.  
  14. foreach($files as $item) {
  15.  
  16. if($item != "." and $item != "..") {
  17. echo $space . $item . "<br />";
  18.  
  19. if(is_dir("/" . $item)) {
  20. $space .= "&nbsp;&nbsp;&nbsp;";
  21. $ndir = $path . "/" . $item;
  22. $olddir = $path;
  23. $path = $ndir;
  24. filestree();
  25. $path = $olddir;
  26. $space = NULL;
  27. }
  28.  
  29.  
  30. }
  31.  
  32. }
  33.  
  34. }
  35.  
  36. filestree();


Были разные варианты, но все сходилось на одном: либо отображает файлы и папки всего на 1 уровеь ниже, либо выводит ошибку (он добавляет в адрес два каталога на одном уровне)

Помогите решить задачу, пожалуйста.
dimcrash Отправлено: 28 Июля, 2011 - 16:38:24 • Тема: Правильно ли? • Форум: Хранение данных, их вывод и обработка

Ответов: 2
Просмотров: 2072
страницы есть, просто кнопки для переключения пока не сделал. но можно переключать вручную. так все нормально и переделывать не надо?
(Добавление)
Вот скрипт с кнопками:
PHP:
скопировать код в буфер обмена
  1.  $page = ($_GET["page"])?$_GET["page"]:1;
  2.  $max = 4;
  3.  $content = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13");
  4. foreach($content as $value) {
  5.         $num++;}
  6.  $pages = ($num%$max>0)?floor($num/$max) + 1:floor($num/$max);
  7. if($pages > 1) {
  8. while($numpage!=$pages) {$numpage++;
  9.         if($numpage == $page) {
  10.         echo "<b>$numpage</b> ";
  11.         }
  12.         else {
  13.         echo "<a href=\"http://192.168.0.102/?page=$numpage\">$numpage</a> ";}
  14.         }
  15.         }
  16. if($page > $pages) {
  17.         echo "<p>Ошибка! Такой страницы не существует!</p>";}
  18. else {
  19.         for($start = ($num - 1) - $max * ($page - 1), $end = ($num - 1) - $max * $page, $cur = $start; $cur != $end; $cur--) {
  20.                 echo "<p>" . $content[$cur] . "</p>";
  21.                 if($cur == 0) break;}
  22. }
  23.  $numpage = NULL;
  24. if($pages > 1) {
  25. while($numpage!=$pages) {$numpage++;
  26.         if($numpage == $page) {
  27.         echo "<b>$numpage</b> ";
  28.         }
  29.         else {
  30.         echo "<a href=\"http://192.168.0.102/?page=$numpage\">$numpage</a> ";}
  31.         }
  32.         }
dimcrash Отправлено: 28 Июля, 2011 - 16:15:18 • Тема: Правильно ли? • Форум: Хранение данных, их вывод и обработка

Ответов: 2
Просмотров: 2072
Я сделал что-то типа переключателя страниц.Все работает, но правильно ли составлен скрипт? Нужно исправлять?
PHP:
скопировать код в буфер обмена
  1.  
  2. $page = ($_GET["page"])?$_GET["page"]:1;
  3. $max = 4;
  4. $content = array("Текст 1", "Текст 2", "Текст 3", "Текст 4", "Текст 5,", "Текст 6", "Текст 7");
  5. foreach($content as $value) {
  6. $num++;}
  7. for($i = ($max * ($page-1)), $cur = $i; $cur != $i + $max; $cur++) {
  8. if($cur == $num) break;
  9. echo "<p>" . $content[$cur] . "</p>";}
  10.  

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB