Создание файла-меню

Статус
В этой теме нельзя размещать новые ответы.

alexsnz75

Создатель
Регистрация
6 Фев 2008
Сообщения
31
Реакции
29
Добрый день. Нужна помощь в создании следующего php скрипта.

Есть директория с несколькими файлами. Структура файлов вида:

1 срока: заголовок
2 строка ...: содержание

Хочу сделать скрипт, который бы считывал инфу из файлов в этой директории и сохранял в один файл вида:

<a href="ссылка на 1-ый файл">заголовок 1-го файла</a>
200 символов содержания 1-го файла
...
<a href="ссылка на n-ый файл">заголовок n-го файла</a>
200 символов содержания n-го файла
 
Делаешь листинг директории (уже выкладывали не раз). Читаешь каждый файл и, собственно, обрезаешь до нужной длинны :)

Делай, разрешаю... :)
 
Проблема в том, что я фактически только сегодня начал изучать php.
Но в общем то, уже слепил пробный вариант. Может быть корявый, но работает. Счас довожу до кондиции.
 
Тогда книжку в зубы и грызть ;)
 
Вот слепил:

PHP:
<? 


$tempdir = dirname(getcwd() . '/' . $argv[0]);
$curdir = getcwd();
$length = strlen($tempdir)+1;
$dir=substr($curdir,$length);

$fn = fopen("index.htm", "w+");

fwrite($fn, "\n");

// чтения элементов каталога

if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) { 
        if ($file != "." && $file != ".."  && $file != "write.php" && $file != "index.htm") { 


//открытие файла в каталоге

$fh = fopen($file, "r"); 

$ic = 0;


while (! feof($fh) && ++$ic<=2) : 

$data = fgetss($fh, 4096);


// Открыть файл и установить указатель текущей позиции в конец файла 


if ($ic<=1) 
{
$data1 = "<a href=/".$dir."/".$file."l>".$data."</a><br>";
fwrite($fn,$data1);
} 
else
{
// Записать содержимое $data в файл 

fwrite($fn, $data);
} 

endwhile;

fwrite($fn, '...<br><br>');
fclose($fh); 

// Закрываем каталог 
      } 
    }
   closedir($handle); 
}

// Закрыть файл 

fclose($fn); 


?>

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

И как сделать, если в директории со скриптом несколько папок, чтобы он проверял каждую и создавал там свой index.htm?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху