Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для Chubaka101
15 / 14 / 5
Регистрация: 14.10.2015
Сообщений: 266

Открыть каталог и вывести названия файлов, содержащие вводимое слово

26.11.2016, 21:17. Показов 1696. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, у меня получается получить названия файлов из каталога, но как показать файлы, в названии которых присутствует вводимое мной слово, я не знаю, помогите, пожалуйста.
Еще проблема. У меня в каталоге 2 файла(txt и docx), но на страницу выводится лишние данные и еще, если в имени файла есть русские буквы, вместо них иероглифы.

PHP
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
29
30
31
32
33
34
35
<html>
<head>
    <meta charset="UTF-8">
    </head>
    <body>
        <form method="get"> 
        <label>Путь</label>
        <input type="text" name="dir">
        <br>
        <label>Имя файла</label>
        <input type="text" name="name">
          <br>  
        <input type="submit">
        </form>
 
<?
  $dir=$_GET['dir'];
  $name=$_GET['name'];
        
// Открыть известный каталог и начать считывать его содержимое
if (is_dir($dir)) {
    if ($dh = opendir($dir))
    {
        while (($file = readdir($dh)) !== false)
        {
            echo "файл: $file";
        }
        closedir($dh);
    }
}  
        
?>
 
    </body>
</html>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.11.2016, 21:17
Ответы с готовыми решениями:

Открыть несколько текстовых файлов без точного названия
Есть несколько файлов с названием начинающимся на &quot; 5_* &quot; , где * определенное кол-во букв , неизвестных программе.Как их открыть , зная...

Работа с файлами: поиск файлов, содержащие заданное слово
Здравствуйте, надо реализовать программу на с++, которая выводит имена всех файлов в котором содержится поисковое слово, желательно еще...

Выбрать названия тех файлов, которые содержат ключевое слово
Как выбрать в уже имеющийся файл названия тех файлов каталога, которые содержат в себе некоторое ключевое слово? Добавлено через 45...

7
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
26.11.2016, 21:32
Chubaka101, mb_strpos(). Надеюсь, намек понятен.
PHP
1
2
3
4
5
6
7
$files = new DirectoryIterator($dir);
foreach ($files as $item) {
    // Если нужно проверять не только в именах файлов, то '$item->isFile() &&' можно убрать
    if ($item->isFile() && false !== mb_strpos($item->getFilename(),$name)) {
        echo $item->getFilename().'<br>';
    }
}
1
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
26.11.2016, 21:45
PHP
1
2
3
4
5
echo implode('<br>', array_map(function($e) { return "Файл: $e"; },
    array_filter(scandir($dir),
        function($e) use ($name) { return mb_strpos($e, $name) !== false; }
    )
));
1
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
26.11.2016, 21:49
Цитата Сообщение от Chubaka101 Посмотреть сообщение
на страницу выводится лишние данные
лишние такие как '.' и '..'? Если да, то это нормально.
Цитата Сообщение от Chubaka101 Посмотреть сообщение
если в имени файла есть русские буквы, вместо них иероглифы.
Скрипт должен быть в кодировке UTF-8 (без BOM желательно).
1
 Аватар для Chubaka101
15 / 14 / 5
Регистрация: 14.10.2015
Сообщений: 266
26.11.2016, 22:14  [ТС]
Kerry_Jr, почему-то отображает только файлы, в расширении которых есть вводимое слово $name

Добавлено через 13 минут
т.е. название самого файла в счет не берется, только расширение

Добавлено через 1 минуту
Что-то не догоняю
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
PHP
1
2
3
4
5
6
7
$files = new DirectoryIterator($dir);
foreach ($files as $item) {
 // Если нужно проверять не только в именах файлов, то '$item->isFile() &&' можно убрать
 if ($item->isFile() && false !== mb_strpos($item->getFilename(),$name)) {
 echo $item->getFilename().'<br>';
 }
}
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
26.11.2016, 22:21
Цитата Сообщение от Chubaka101 Посмотреть сообщение
т.е. название самого файла в счет не берется, только расширение
Пример названия и пример слова для поиска в этом названии напишите. Хотя, давайте попробуем по-другому
PHP
1
2
3
4
5
6
7
$files = new DirectoryIterator($dir);
foreach ($files as $item) {
    // Если нужно проверять не только в именах файлов, то '$item->isFile() &&' можно убрать
    //if ($item->isFile() && false !== mb_strpos($item->getFilename(),$name)) {
        echo $item->getFilename().'<br>';
    //}
}
Что выведет этот код?
1
 Аватар для Chubaka101
15 / 14 / 5
Регистрация: 14.10.2015
Сообщений: 266
26.11.2016, 22:38  [ТС]
Kerry_Jr,
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
26.11.2016, 23:10
Chubaka101, значит вы где-то ошибку допустили, потому что выводится и название и расширение, а значит и поиск ведется и по тому, и по другому.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.11.2016, 23:10
Помогаю со студенческими работами здесь

Из множества CSV-файлов скопировать в TXT-файл строки, содержащие определённое слово
Здравствуйте! Уважаемые форумчани! Мне надо из очень большого множества csv файлов (в нем один столбик) взять строки содержащие...

Вывести только предложения, содержащие введенное слово
Написать программу, которая считывает текст из текстового файла и выводит на экран только предложения, содержащие введенное с клавиатуры...

Вывести только предложения, содержащие введенное слово (исправить)
Помогите пожалуйста найти ошибки!!! Программа вроде запускается, но файл не находит!!! Написать программу, которая считывает текст из...

Вывести на экран предложения, содержащие введенное с клавиатуры слово
Необходимо написать программу, которая считывает текст из файла и выводит на экран только предложения, содержащие введенное с клавиатуры...

Файл: Вывести на экран предложения, содержащие заданное слово...
1) написать программу, которая считывает текст из файла и выводит на экран только предложения, содержащие введенное с клавиатуры слово. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru