Программирование > PHP

Список файлов в подкаталоге

(1/1)

Daiz13:
Ситуация такова:
есть функция создающая список файлов в заданом каталоге

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:
Извиняюсь.
Стараясь сократить вопрос я вырезал из кода самое главное - причину ошибки. Указаная в вопросе функция перебирает все файлы в указаном каталоге, и одинаково правильно работает как для "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;}
    }
**************************************

:
А если просто "/articles" , без точки.

AliMamed:
наверное лучше полный путь указать

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии