Сделать html-оглавление

12
Creeping Shadow
На сайте с 05.10.2005
Offline
98
1824

Есть до фига файлов в папке, надо сделать одну страничку в html. содержащую ссылки на все эти файлы... типа оглавление.

Можно это как-нить автоматизировать?

Лучшие, на мой взгляд, VPS/VDS в Германии (https://bill2fast.com/aff.php?aff=449) Я поддерживаю Сапу, я не поднимаю цены, не снимаю ссылки, не бегу в биржи-клоны. (/ru/forum/comment/3758255) Антикризисные проекты коттеджей! За персональной скидкой - в личку ;) (http://architek.spb.ru/)
content
На сайте с 23.01.2006
Offline
103
#1

Creeping Shadow, очень легко автоматизировать в PHP, к примеру. Вам нужен именно html? Сгенерированный?

Creeping Shadow
На сайте с 05.10.2005
Offline
98
#2

Ну да... На выходе должен быть html файл... Хотя - против php скрипта тоже ничего не имею :)

content
На сайте с 23.01.2006
Offline
103
#3

Creeping Shadow, тогда как-то так (оформлять на свой вкус):


<ul>
<?

$directory = "укажите тут директорию";
$path_to_web = "укажите тут URL и путь"

if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") { //тут можно прописать еще файлов, которые надо исключить
?>
<li><?=$directory?>/<?=$file?></li>
}
}
closedir($handle);
}
?>
</ul>
Creeping Shadow
На сайте с 05.10.2005
Offline
98
#4

А вот еще бы сделать, чтобы тексты ссылок в этом оглавлении брались из тега H1 :))

Тег <h1> есть в каждом файле в единственном числе, в самом начале...

content
На сайте с 23.01.2006
Offline
103
#5

Т.е. извлечь из каждого файла содержимое H1 и использовать как текст ссылки?

Creeping Shadow
На сайте с 05.10.2005
Offline
98
#6

Так точно :)

content
На сайте с 23.01.2006
Offline
103
#7

Да, в первом варианте баги были, пробуйте так:


<ul>
<?

$directory = ""; // укажите тут директорию
$path_to_web = "http://bla-bla.com"; // укажите тут URL и путь

if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") { //тут можно прописать еще файлов, которые надо исключить
$content = preg_replace("/^.+?<h1>(.*?)<\/h1>.+$/ism", "$1", file_get_contents($directory."/".$file));
?>
<li><a href="<?=$path_to_web?>/<?=$file?>"><?=$content?></a></li>
<?
}
}
closedir($handle);
}
?>
</ul>
Creeping Shadow
На сайте с 05.10.2005
Offline
98
#8

Офигенно! Настроил!

А слабо теперь сделать так, чтобы ссылки в рандомном порядке генерились? 🚬 Если сделаете - жду номер кошелька WMZ :)

K
На сайте с 24.03.2004
Offline
223
#9

нужно еще добавить кэш под индекс или же его прегенерацию, т.к. каждый запрос к серверу вызывает чтение всех файлов в директории... и чего это шаред хостинги такие убогие?

проверенная ддос защита (http://ddos-protection.ru) -> http://ddos-protection.ru (http://ddos-protection.ru), бесплатный тест, цена от размера атаки не зависит.
Creeping Shadow
На сайте с 05.10.2005
Offline
98
#10

kostich, согласен.

Плюс - я забыл что у меня в <h1> ссылка вложена. То есть получается:

<h1><a href="http://url">Текст ссылки</a></h1>

Кстати - это не дор ;)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий