Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Нужен совет PHP програмеров.
цитата
29/04/11 в 09:07
 Vyacheslav
На сайте есть директория, в которой находится контент, в виде нескольких сотен директорий. Оффтопик: Это работа одного из скриптов, который обновляет данное содержимое примерно раз в неделю или реже.
Каким путём пойти, если нужно на основании этого списка директорий создать страничку с сылками на эти же директории одним длинным листингом? (Естественно, что всё нужно завязать на дизайне, т.е. может добавлятся ещё множество шаблонных участков html кода в промежуточных этапах.)

Т.е. у меня идея такая: создать php скрипт, который при помощи крона раз в сутки или ручным запуском будет генерить статическую html страницу (fopen, fwrite) прямо в теле цикла, который парсит каталог на подкаталоги..
Тоесть создаю файл fopen, извращаюсь fwrite, чтобы добавить статическую часть начала страницы. Далее пробегаю по нужной директориии и в режиме реальньного времени в цикле добавяляю блоки html с учётом парсеного пути. В заключении добавляю футер страницы.

Как поступили бы в этом случае опытные php програмеры?
цитата
29/04/11 в 09:13
 dDan
Отвечаю прочел два раза, нихуя не понял.
Тебе нужны ссылки на все папки в текущей папке или на все подпапки папок в текуйщей папки
цитата
29/04/11 в 09:38
 X777
Все верно, только ты как-то все сложно описал.

Читаешь содержимое папки в массив.

Дальше если в динамике, то выводишь свой хедер элементы массива в виде линков циклом и дальше футер.

Если в статике, то хедер дальше элементы массива в виде линков циклом и дальше футер пишешь все это в файл html

Если изменения у тебя происходят раз в сутки или не критично иметь актуальную информацию в каждый момент времени и трафа там мульен то скорее всего логично гнать все в статику.
цитата
29/04/11 в 09:52
 dDan
foreach(glob('*', GLOB_ONLYDIR) as $dir){
fwrite("<a href=\"{$dir}\">{$dir}</a><br />");
}

?
цитата
29/04/11 в 10:47
 Vyacheslav
Там трафа мало. Статику я выбрал, так как обновления очень редко происходят.

X777 писал:
Читаешь содержимое папки в массив.

1) Только вот я как раз хотел избежать работы с массивом. Mожно и массив, вот только как PHP относится к массивам, каждый элемент которых содержит по 5-10кб текстовых данных? + В ситуации с массивом может усложниться, так как нужно 2 прохода, первый для заполнения массива, второй для чтения.

2) Предположим хедер или футер = 10-20кб html текстовых данных с переносами строки. Как это дело загнать в переменную? Если на конретном примере, то:
Код:
<?php
$fp = fopen("page.html", 'a');
ftruncate($fp, 0) // очищаем файл

//Хочу добавить хедер
fwrite($fp, "<html>/n<head>/n<title> ...");
...
fclose($fp);


Как более красиво добавить эту переменную "<html>/n<head>/n<title> ..., например в виде ещё одного файла, чтоб не расписывать всё в таком виде в одну строчку?


dDan писал:
foreach(glob('*', GLOB_ONLYDIR) as $dir){
fwrite("<a href=\"{$dir}\">{$dir}</a><br />");
}

Примерно так я и начал. Там будет немного просто усложнён шаблон html.


Эта страница в полной версии