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]   

> Без описания
Dkhar
Отправлено: 22 Февраля, 2015 - 12:04:04
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Февр. 2015  


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




Помогите, пожалуйста, разобраться.

Простая файловая система на подобии norton-comander, far, FileZilla с упрощенной версией.
Её путь будет: index.php?page=program1 .
Необходимо:
1) вывести каталог папок и файлов для данной директории, используя scandir('.'). Перед названием выводить иконку папки, или иконку файла соответственно. Проверку делать на: is_dir() - else.
2) Папки сделать кликабельными, через ссылку передавать второй аргумент - путь к файлу по примеру: <a href="/index.php?page=program1&link=echo (isset($link) ? $link.'/'.$v :$v);">имя папки</a> . Данный путь будет содержаться в массиве после использования функции scandir.
3) По переходу по ссылке будет передаваться $_GET['link'], который необходимо будет подставить в функцию scandir для того, чтобы отобразить файлы и папки внутри конкретной директории.

4) Таким образом мы сможем воссоздать файловую систему и передвигаться по директориям и поддиректориям.

Цели программы: изучить новые функции + цикл с массивом и множества аргументов для $_GET.

Что я наваяла:

PHP:
скопировать код в буфер обмена
  1.  
  2. $dir = scandir(".");
  3. echo '<pre>';
  4. print_r ($dir);
  5. echo '</pre>';
  6. echo '<ol>';
  7. foreach($dir as $item){
  8.  if(is_dir($item)){
  9.   echo "<li id='dir'><a href="/index.php?page=program1&link=echo (isset($link) ? $item.'/'.$v :$v);">$item</a></li>";
  10.  }
  11.  else echo "<li id='file'>$item</li>";
  12. }
  13. echo '</ol>';
  14.  


Я не понимаю:
1. Откуда берутся переменные $v и $link?
2. Что в них должно быть?
3. Как оно вообще должно работать?
Я уже просто отчаялась разобраться в этом! Хочется же понимать, что делаешь.
 
 Top
Avarskiy
Отправлено: 22 Февраля, 2015 - 13:01:15
Post Id



Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2012  


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




Так, а откуда вы взяли $link и $v?
PHP:
скопировать код в буфер обмена
  1. $dir = scandir(".");
  2. echo '<pre>';
  3. print_r($dir);
  4. echo '</pre>';
  5. echo '<ol>';
  6. foreach ($dir as $item) {
  7.     if (is_dir($item)) {
  8.         echo "<li id='dir'><a href='/index.php?page=program1&link=$item'>$item</a></li>";
  9.     } else
  10.         echo "<li id='file'>$item</li>";
  11. }
  12. echo '</ol>';
 
 Top
Dkhar
Отправлено: 22 Февраля, 2015 - 15:37:02
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Февр. 2015  


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




Avarskiy пишет:
Так, а откуда вы взяли $link и $v?
PHP:
скопировать код в буфер обмена
  1. $dir = scandir(".");
  2. echo '<pre>';
  3. print_r($dir);
  4. echo '</pre>';
  5. echo '<ol>';
  6. foreach ($dir as $item) {
  7.     if (is_dir($item)) {
  8.         echo "<li id='dir'><a href='/index.php?page=program1&link=$item'>$item</a></li>";
  9.     } else
  10.         echo "<li id='file'>$item</li>";
  11. }
  12. echo '</ol>';


я задаю этот же вопрос Улыбка
 
 Top
DivMan
Отправлено: 15 Февраля, 2017 - 18:03:08
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Февр. 2017  


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




Я продолжу тему.

Почему не переходит по ссылкам?

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $scan = __DIR__;
  4. $dir = scandir($scan);
  5. echo '<pre>';
  6. print_r ($dir);
  7. echo '</pre>';
  8. ?>
  9. <ol>
  10.     <?foreach($dir as $v):?>
  11.         <?if(is_dir($scan.'/'.$v)):?>
  12.         <?PHP $l = isset($link) ? $link .'/' .$v :$v; ?>
  13.         <li id="dir"><a href="fm.php?page=program&link=<?=$l?>"><?=$v?></a></li>
  14.         <?else:?>
  15.         <li id='file'><?=$v?></li>
  16.         <?endif?>
  17.     <?endforeach?>
  18. </ol>
  19.  
 
 Top
Строитель Модератор
Отправлено: 15 Февраля, 2017 - 21:21:10
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




DivMan пишет:
Почему не переходит по ссылкам?
Потому что значение переменной $v оборачивается в html-тег ссылки только в том случае, если выполняется условие <?if(is_dir($scan.'/'.$v)):?>

А выполняться оно будет только в том случае, если в переменных $scan.'/'.$v будет записана директория.
 
 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