Forum Webscript.Ru

Программирование => PHP => Тема начата: Daiz13 от 27 Мая 2001, 03:52:25

Название: Список файлов в подкаталоге
Отправлено: Daiz13 от 27 Мая 2001, 03:52:25
Ситуация такова:
есть функция создающая список файлов в заданом каталоге

function list_articles($base){
$basedir = opendir("$base");
while ($file = readdir($basedir))
{  if ($file != \'.\' && $file != \'..\' && eregi(".php","$file"))
        {$fname=substr($file,0,strlen($file)-4);
        print("$fname
"); flush();}
}
closedir($basedir);
}

если вызывать для корневого каталога, где находиться сам скрипт
list_articles(".");
все ОК, но если
list_articles("./articles");
то функция останавливаеться после первого файла.
Ну и как жить дальше?
Название: Список файлов в подкаталоге
Отправлено: Daiz13 от 27 Мая 2001, 18:12:18
Извиняюсь.
Стараясь сократить вопрос я вырезал из кода самое главное - причину ошибки. Указаная в вопросе функция перебирает все файлы в указаном каталоге, и одинаково правильно работает как для "articles" так и для "./articles". Но...
Полученые имена файлов она передает функции get_title_tag() указаной ниже. Эта функция ищет в файле строку \'TITLE="_название_страницы_";\' и как результат возвращает \'_название_страницы_\'.
Дело в том, что для текущего каталога все работает прекрасно, а при попытке работать с подкаталогами - не хочет. Выглядит все так, будто она просто не находит искомую строку. Все это тестирую локально, под Виндой, может тут какие нюансы есть?

Вот сама функция:
**************************************
function get_title_tag($cfile){
    $fp = fopen ($cfile, \'r\');
    $rc=5;
    while (! feof ($fp) && ($rc>0) ){
         $content .= fgets ($fp, 1024);
         if (stristr($content, \'TITLE\' )) {break;}
    $rc--;
         }
    if (eregi(\'TITLE="(.*)";\', $content, $out)) {return $out[1];}
    else {return false;}
    }
**************************************
Название: Список файлов в подкаталоге
Отправлено: от 27 Мая 2001, 18:25:52
А если просто "/articles" , без точки.
Название: Список файлов в подкаталоге
Отправлено: AliMamed от 28 Мая 2001, 10:52:06
наверное лучше полный путь указать