Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.
Закрыт 1 год назад.
Хочу реализовать поиск по файлам по содержимому, и чтобы файлы в которых есть такая инфа подключались к основному файлу. Мне удалось сделать поиск по файлам и вывод названия файла в котором есть нужный текст, также отдельно сделал подключения всех файлов из папки.
$dir="files";
function searchFiles($dir, $search) {
$files = glob($dir."/*.html"); // Получаем все html-файлы из директории
$results = array(); // Создаём массив для результатов поиска
for ($i = 0; $i < count($files); $i++) {
/* Перебираем все полученные файлы */
$str = strip_tags(file_get_contents($files[$i])); // Помещаем содержимое файлов в переменную, предварительно убрав все html-теги
$count = substr_count($str, $search); // Ищем количество вхождений искомой строки в файл
if ($count) $results[$files[$i]] = $count; // Если хотя бы 1 вхождение найдено, то добавляем файл с количеством вхождений в массив результатов
}
return $results; // Возвращаем результат
}
$results = searchFiles(".", "ABC"); // Ищем файлы в текущей директории, в которых входит строка "ABC"
print_r($results); // Выводим массив (если не знаете, как по-другому вывести массив, то Вам сюда)
////////////////////////////////
$catalog = opendir($dir);
while ($filename = readdir($catalog )) // перебираем наш каталог
{
$filename = $dir."/".$filename;
include_once($filename); // один раз подрубаем, чтоб не повторяться
}
closedir($catalog);
Как объединить эти 2 фрагменты кода в 1, чтобы найденные файлы подключались к основному файлу? То есть нужно передать найденное имя файла в функцию подключения файлов.
Как-то так будет выглядеть метод поиска:
function searchFiles($filepath, $search) {
$str = strip_tags(file_get_contents($filepath)); // Помещаем содержимое файлов в переменную, предварительно убрав все html-теги
$count = substr_count($str, $search); // Ищем количество вхождений искомой строки в файл
return $count ? true : false;
}
А так обработка файлов:
$dir="files";
$catalog = opendir($dir);
while ($filename = readdir($catalog )) {
$filename = $dir."/".$filename;
if (searchFiles($filename) === true) {
require_once $filename; // один раз подрубаем, чтоб не повторяться
}
}
closedir($catalog);
Протестируй данный вариант.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Комментарии на сайте отображаются благодаря следующему коду: