|
|
|
| Есть функция вывода файлов директории
<?php
print("<ul>\n");
$myDirectory=opendir(".");
while(FALSE !==($entryName = readdir($myDirectory)))
{
print("<li>$entryName</li>\n");
}
closedir($myDirectory);
print("</ul>\n");
?>
|
Как чтобы выводился список только текстовых файлов директории? | |
|
|
|
|
|
|
|
для: helovek
(17.06.2008 в 16:31)
| | Если возможно заранее определить какой файл - текстовый или бинарный, то лучше позаботиться об этом раньше: распихивать файлы по разным директориям, делать метку в базе или в имени файла и т.п.
Иначе возможно только предположить какой перед нами файл - текстовый или бинарный, путём поиска следующих байтов (любой из них): 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0B, 0x0C, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F.
Но при этом стоить понимать, что файлы в таких кодировках, как UCS, например, будут считаться бинарными. И если файл подпорчен и содержит один из вышеперечисленных байтов, то будет тоже самое. | |
|
|
|
|
|
|
|
для: BinLaden
(17.06.2008 в 16:39)
| | BinLaden, человеку просто нужно вывести файлы с расширением txt(doc, htm).
[поправлено модератором] | |
|
|
|
|
|
|
|
для: mihdan
(18.06.2008 в 12:19)
| | > BinLaden, человеку просто нужно вывести файлы с расширением txt(doc, htm)
Он этого не уточнял, почему Вы так уверены? Тогда почему Вы glob() не захотели новичку показать? Вы же профессионал и должны новичкам советовать более разумные решения. Новичёк, наверное, про эту функцию и не знает. | |
|
|
|
|
|
|
|
для: helovek
(17.06.2008 в 16:31)
| | Если под текстовыми файлами понимаются только те у которых расширение .txt тогда
по расширению определить... Есть функция scandir() она вернет массив с именами файлов потом обойти этот массив с помощью foreach те что с расширением .txt вывести....
Вот здесь не то, но похоже напписано:
Ссылка | |
|
|
|
|
|
|
|
для: helovek
(17.06.2008 в 16:31)
| |
<?php
print("<ul>\n");
$myDirectory=opendir(".");
while(FALSE !==($entryName = readdir($myDirectory))) {
if (preg_match('|\.txt$|', $entryName)) {
print("<li>$entryName</li>\n");
}
}
closedir($myDirectory);
print("</ul>\n");
?>
|
| |
|
|
|
|
|
|
|
для: mihdan
(17.06.2008 в 23:46)
| | [поправлено модератором] | |
|
|
|
|
|
|
|
для: BinLaden
(18.06.2008 в 01:20)
| | Тип файла можно определить несколькими способами:
1) самый порочный (на мой взгляд) - это по суфиксу (по расширению), т.к. пользователь может "влепить" любое расширение;
2) по mime-типу:
- mime_content_type("имя_файла") - PHP функция, но отрабатывает не очень корректно все файлы (mime-типы обобщает);
- `file -i -b 'имя_файла'` - Unix команда, но тоже не все файлы отределяет точно, т.к. обобщает mimе-типы (в частности для mp3, xls, ppt, pps,vsd,zip, rar - уточнял по суфиксу), но для текстовых файлов указывает и тип кодировки, что удобно);
3) что предложил BinLaden. | |
|
|
|
|
|
|
|
для: vitali
(18.06.2008 в 11:11)
| | Спасибо! | |
|
|
|