Forum Webscript.Ru

Программирование => PHP => Тема начата: sky от 28 Марта 2002, 11:58:34

Название: файлы в директории
Отправлено: sky от 28 Марта 2002, 11:58:34
Привет!
Как можно выывести в виде ссылок названия файлов без расширения из определенной директории?
К примеру, папка dir содержит файлы:
1.txt, 2.txt, 3.txt
Нужно вывести
http:// 1 , http:// 2 , http:// 3
Название: файлы в директории
Отправлено: AliMamed от 28 Марта 2002, 12:15:02

$handle = opendir(\'/home/my/dir\');
while (false !== ($file = readdir($handle))) {
    if ($file != "." && $file != ".." && substr($file,-4)==".txt") {
        echo "$file, ";
    }
}
closedir($handle);
Название: файлы в директории
Отправлено: sky от 28 Марта 2002, 14:44:03
Выводит только с расширением...
а если сделать так:

$handle = opendir(\'test/\');
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && substr($file,-4)==".txt") {
        $rez = substr ($file,-4)==".txt";
        echo "$rez, ";
    }
}
closedir($handle);


выводит:
http:// 1 , http:// 1 , http:// 1
Название: файлы в директории
Отправлено: Fury от 28 Марта 2002, 17:22:04
Ну и правильно выводит :))
Ты ж переменной $rez присваиваешь значение логического выражения substr ($file,-4)==".txt" (т.е. единичку)

тебе надо :
   $rez = substr ($file,0,-4);
Название: файлы в директории
Отправлено: Covex от 01 Апреля 2002, 23:03:57
можно еще и ereg использовать чтоб отсечь лишние файлы:
 if ($file != "." && $file != ".." && !ereg(".inc$|.php3$", $file))
Название: файлы в директории
Отправлено: AliMamed от 01 Апреля 2002, 23:21:52
Цитировать
можно еще и ereg использовать чтоб отсечь лишние файлы:

можно, но не нужно
Название: файлы в директории
Отправлено: Covex от 01 Апреля 2002, 23:39:19
Чем хуже это двухкратного substr($file,-4)==".txt") :

while (false!==($file = readdir($handle))) {
if ($file != "." && $file != ".." && ereg(".txt$", $file)) {
echo "$file";
}
}
Название: файлы в директории
Отправлено: Dm от 02 Апреля 2002, 00:36:20
Covex
тогда, что работает быстрее ereg или substr?
можно протестировать "ab" и выяснить, какой из исходников работает быстрее.