我有很多 CSV 文件不幸用 iso-8859-2 編碼(根據(jù)括號(hào))。我想用 PHP 遍歷這些文件并轉(zhuǎn)換它們。我找到了https://csv.thephpleague.com/9.0/converter/charset/但我不確定使用轉(zhuǎn)換功能的方式。他們的示例代碼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);到目前為止,這是我的代碼,它是上傳一個(gè)文件并將內(nèi)容保存到數(shù)據(jù)庫進(jìn)行測(cè)試的表單的一部分。它當(dāng)然會(huì)以不正確的格式保存文本。$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 庫在循環(huán)中迭代本地保存的文件for以自動(dòng)化該過程的正確方法是什么?
2 回答

婷婷同學(xué)_
TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
我最終iconv按照提示使用。
$files = glob('address/*.csv');
foreach ($files as $csv) {
$file_data = file_get_contents($csv);
$utf8_file_data = iconv('Windows-1250', 'UTF-8', $file_data);
file_put_contents($csv, $utf8_file_data);
}
- 2 回答
- 0 關(guān)注
- 189 瀏覽
添加回答
舉報(bào)
0/150
提交
取消