Скрипт создания списка урлов страниц

Тема в разделе "PHP", создана пользователем 4erepaha13, 21 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. 4erepaha13

    4erepaha13

    Регистр.:
    20 июн 2009
    Сообщения:
    155
    Симпатии:
    17
    Нужен скрипт, который при запуске сканировал определенную директорию и на выходе создавал хтмл файл с списком урлов к этим файлам вида

    Список страниц:
    1. страница 1 (ссылка)
    2. страница 2 (ссылка)
    ...и т.д.


    Это вполне доступно для самостоятельной нубской реализации,если покурить соответствующие темы (ткните носом куда);
    это достаточно просто чтобы ктото мог в топике отписаться готовым решением или это уже тянет на то чтобы найти фрилансера за денежку для написания скрипта ?
     
  2. semakos

    semakos Постоялец

    Регистр.:
    26 окт 2008
    Сообщения:
    63
    Симпатии:
    14
    Смотря что значит директорию? Если страницы сканировать на предмет URL, так это легко сделать, а если имелось в виду директорию на сервере и смотреть какие там страницы, то посложнее.
     
  3. 4erepaha13

    4erepaha13

    Регистр.:
    20 июн 2009
    Сообщения:
    155
    Симпатии:
    17
    Нужно сканить директории- их будет несколько и в них время от времени пачками будут добавляться новые хтмл файлы, соответственно или руками в некий аналог карты сайта(список страниц) вносить урлы, или скриптом пробегаться по этой директории на сервере, получать список и уже его вставлять в карту.
     
  4. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    4erepaha13 нравится это.
  5. axevs

    axevs Создатель

    Регистр.:
    13 янв 2008
    Сообщения:
    37
    Симпатии:
    45
    Вот написал по быстрому.

    PHP:
    <?php
    $path 
    './files/'//путь к директории с файлами
    $res dirScan($path);
    $i 1;
    file_put_contents('files.html''Список:<br>'."\r\n"FILE_APPEND); 
    foreach(
    $res as $value) {
     
    $file basename($value); 
     
    file_put_contents('files.html'$i.'. '.$file.' (<a href="'.$value."\">$file</a>)<br>\r\n"FILE_APPEND);
     
    $i++;
    }
    function 
    dirScan($directory$step=0$max=10) {
     global 
    $res;
     foreach (
    glob($directory.'*') as $f) {
      if(!
    is_dir($f)) {
       
    $res[] = $f;
      }
      else {
       
    dirScan($f.'/', ($step+1));
      }
     }
    return 
    $res;
    }
    ?>
     
    4erepaha13 нравится это.
  6. 4erepaha13

    4erepaha13

    Регистр.:
    20 июн 2009
    Сообщения:
    155
    Симпатии:
    17
    То что надо!

    <?php
    $d = dir("/home/users/bla-bla");
    echo "Handle: " . $d->handle . "\n";
    echo "Path: " . $d->path . "\n";
    while (false !== ($entry = $d->read())) {
    echo "<a href='".$entry."'>".$entry."</a><br>";
    }
    $d->close();
    ?>


    Добавлено через 4 минуты
    о - а это уже практически готовое решение, вписать элементы шаблона и навигации, и руками даже ничего не нужно будет делать.
    Единственное- скрипт выводит
    результат в виде
    6. index_003.html (<a href="./index_003.html">index_003.html</a>)
    т.е. теги как текст обработались, под свои задачи в виде урла я подправил синстаксис вывода.

    В результате получается очень удобная штука- несколько тематических папок с статьями, по мере добавления- скрипт обновляет файл-листинг содержимого каждого раздела.

    А еще вопрос- использование FILE_APPEND повтороным вызовом скрипта дописывает этот файл, т.е. для обновления списка его надо предварительно удалять.
    Есть ли возможность это в скрипте делать ?
     
  7. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    не забудьте добавить проверку на директории перед выводом списка файлов
    PHP:
    if ($entry == '.' || $entry == '..') { continue; }
     
  8. 4erepaha13

    4erepaha13

    Регистр.:
    20 июн 2009
    Сообщения:
    155
    Симпатии:
    17
    это для секьюрности или еще какието есть причины ?
     
  9. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Это текущая и родительская папка, в принципе учитывать их не нужно.
     
  10. 4erepaha13

    4erepaha13

    Регистр.:
    20 июн 2009
    Сообщения:
    155
    Симпатии:
    17
    понял - чтобы исключить их из списка.
    всем спасибо, топик можно закрыть
     
Статус темы:
Закрыта.