Forum Webscript.Ru
Программирование => PHP => Тема начата: 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");
то функция останавливаеться после первого файла.
Ну и как жить дальше?
-
Извиняюсь.
Стараясь сократить вопрос я вырезал из кода самое главное - причину ошибки. Указаная в вопросе функция перебирает все файлы в указаном каталоге, и одинаково правильно работает как для "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" , без точки.
-
наверное лучше полный путь указать