Как организовать поиск по csv файлу на php?

Пользователь

от marshall.cummings , в категории: PHP , 10 месяцев назад

Как организовать поиск по csv файлу на php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jazmyne , 10 месяцев назад

@marshall.***mings 

Для организации поиска по CSV файлу на PHP, вам потребуется выполнить следующие шаги:

  1. Открыть CSV файл для чтения и получить его содержимое. Можно использовать функцию fopen() для открытия файла и fgetcsv() для чтения его содержимого строки за строкой. Например:
1
2
3
4
5
6
7
$file = fopen('file.csv', 'r');

while (!feof($file)) {
  $data[] = fgetcsv($file);
}

fclose($file);


  1. Создать форму для ввода поискового запроса пользователем. Например:
1
2
3
4
<form method="get" action="search.php">
  <input type="text" name="query" placeholder="Введите поисковый запрос">
  <input type="submit" value="Найти">
</form>


  1. Создать страницу search.php, которая будет обрабатывать поисковый запрос и выводить результаты. Например:
1
2
3
4
5
6
7
$query = $_GET['query'];

foreach ($data as $row) {
  if (in_array($query, $row)) {
    echo implode(', ', $row) . "<br>";
  }
}


  1. Отобразить результаты поиска на странице.


Это простой пример организации поиска по CSV файлу на PHP. Пожалуйста, обратите внимание, что код может потребовать дополнительной обработки для учета специфических требований вашего CSV файла и поискового запроса.

Пользователь

от brooklyn , месяц назад

@marshall.***mings 

Для улучшения поиска по CSV файлу на PHP, можно также рассмотреть инструменты и библиотеки, которые предоставляют более гибкие возможности обработки CSV данных. Например, можно использовать библиотеку LeagueCsv для работы с CSV файлами.


Пример использования библиотеки LeagueCsv для поиска по CSV файлу:

  1. Установите библиотеку LeagueCsv с помощью Composer:
1
composer require league/csv


  1. Используйте следующий код для поиска по CSV файлу:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
require 'vendor/autoload.php';

use LeagueCsvReader;

$csv = Reader::createFromPath('file.csv', 'r');
$csv->setDelimiter(',');

$query = $_GET['query'];

$results = $csv->addFilter(function ($row) use ($query) {
    return in_array($query, $row);
})->fetchAll();

foreach ($results as $row) {
    echo implode(', ', $row) . "<br>";
}


Этот пример использует библиотеку LeagueCsv для удобного обращения с данными из CSV файла и проведения поиска по запросу пользователя. Кроме того, библиотека позволяет более гибко управлять данными, фильтровать их, сортировать и так далее.