У меня довольно много CSV-файлов, которые, к сожалению, закодированы в iso-8859-2 (согласно скобкам). Я хотел бы перебрать эти файлы с помощью PHP и преобразовать их.
Я нашел https://csv.thephpleague.com/9.0/converter/charset/, но способ использования функции преобразования для меня неясен.
Их пример кода
use League\Csv\CharsetConverter;
$csv = new SplFileObject('/path/to/french.csv', 'r');
$csv->setFlags(SplFileObject::READ_CSV | SplFileObject::SKIP_EMPTY);
$encoder = (new CharsetConverter())->inputEncoding('iso-8859-15');
$records = $encoder->convert($csv);
Пока это мой код, который является частью формы для загрузки одного файла и сохранения содержимого в базе данных для тестирования. Это, конечно, сохраняет текст в неправильном формате.
$db = ConnectDB::getConnection('address_dtb');
$sql = " ... ";
$stmt = $db->prepare($sql);
$rowCount = 0;
$temp_name = $_FILES['adresscsv']['tmp_name'];
$file_handle = fopen($temp_name, 'r');
while (($items = fgetcsv($file_handle, 1000, ';')) !== FALSE) {
if($flag) { $flag = false; continue; }
$stmt->execute($items);
$rowCount++;
}
fclose($file_handle);
ConnectDB::closeConnection($db);
Как правильно использовать приведенную выше библиотеку PHP CSV для перебора локально сохраненных файлов в for
l oop для автоматизировать процесс?