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

12
content
На сайте с 23.01.2006
Offline
103
#11

Учитывая все пожелания, перепишу вместе с рандомом и кешированием.

Кешируется в любой файл, нужно указать имя в $html_file. Сам файл каждый раз перезаписывается.

Этот скриптик нужно поставить в crontab.


<?
$buffer = "<ul>\n";
$directory = ""; // укажите тут директорию
$path_to_web = "http://bla-bla.com"; // укажите тут URL и путь
$html_file = "file.html"; // это имя html файла, в который будет писаться результат

if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") { // тут можно прописать еще файлов, которые надо исключить
$content = preg_replace("/^.+?<h1>(.*?)<\/h1>.+$/ism", "$1", file_get_contents($directory."/".$file));
$output[] = "<li><a href=\"".$path_to_web."/".$file."\">".$content."</a></li> ";
}
}
closedir($handle);
}
shuffle ($output);
foreach ($output as $out_str) {
$buffer .= $out_str."\n";
}
$buffer .= "</ul>\n";
@unlink($html_file);
$newfile = fopen($html_file,"a+");
fwrite ($newfile,"$buffer \n");
fclose ($newfile);
chmod ($html_file, 0666);
?>
content
На сайте с 23.01.2006
Offline
103
#12
Creeping Shadow:
Кстати - это не дор ;)

Ну на доры есть технологии и понавороченнее. :)

Да, если в <h1>, то просто добавить в генерацию строчки вывода. Только я ее немного изменил.

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

Кстати, результат, т.е. переменную $buffer можно струячить прямо в темплейт страницы, не обязательно только в новый файл.

Если сделаете - жду номер кошелька WMZ

Creeping Shadow, кошелек не нужно, я для души :)

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

1) Выводит "ссылку в ссылке":

<li><a href="http://url-нужный.html"><a href="http://url-в-ссылке-в-h1">Текст</a></a></li>

2) Работает ТОЛЬКО если перед h1 стоит символ табуляции или перевод строки

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

И то и другое, крайне странно :)

А чего в коде поменялось?

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

Так ничего не поменялось. Просто ты видимо не понял. У меня в исходных файлах в <h1> вложен <a ... >

Или я чего-то не понял... :)

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

Пофикшено с использованием strip_tags

$content = strip_tags(preg_replace("/^.+?<h1>(.*?)<\/h1>.+$/ism", "$1", file_get_contents($directory."/".$file))); 
K
На сайте с 24.03.2004
Offline
223
#18

Если бы было в титлах, то можно было бы почитать http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html и закатать в .htaccess :)

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

kostich, да если бы и в тайтлах было, strip_tags помог бы. Только кому бы в голову пришло теги в тайтл совать?

12

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