#php #csv
#php #csv
Вопрос:
Я пытаюсь импортировать файл CSV и загрузить его в свою базу данных. Сначала я протестировал это с некоторыми фиктивными данными, которые не содержали специальных символов. Но теперь, когда у меня есть окончательный CSV, он, похоже, неправильно читает столбцы. Я видел много ответов на другие вопросы, имеющие похожие проблемы, но не смог решить мою проблему с этим.
Чего я хочу добиться: один массив для каждой строки CSV-файла, с каждым столбцом в качестве индекса массива. Кажется, я не могу понять это:/ Спасибо за вашу помощь!
Это скриншот первых 5 строк файла CSV:
Код:
// csv settings
$filename = 'files/games3.csv';
$fp = fopen($filename, "r");
// insert for each row of csv file
$i=0;
while (($row = fgetcsv($fp)) != FALSE)
{
// first 5 rows only (just for testing)
if ($i <= 5){
//$arrIm = implode(";", $row);
//$arrEx = explode(";", $arrIm);
echo '<pre>';
var_dump($row);
echo '</pre>';
$i ;
}
else{
die('done');
}
}
fclose($fp);
Комментарии:
1. вы просматривали свой CSV-файл с помощью текстового редактора и проверяли, действителен ли он?
2. Hi @FranzGleichmann . Да, я открыл его в своем текстовом редакторе. Это не дает мне никаких ошибок…
3. это может быть, но является ли содержимое действительным CSV? у меня есть опыт работы с некоторыми программами для работы с электронными таблицами, которые плохо генерируют CSV
4. Ваш последний столбец со всеми разрывами строк должен быть заключен в кавычки
"
. Единственный известный мне способ заставить его работать. Иfgetcsv()
понадобится;
в качестве разделителя.5. Я только что запустил тест скрипта по ссылке , и этот тест выдает файл с 3811 ошибками…
Ответ №1:
Похоже, что ваш product_description_long содержит символы возврата каретки / перевода строки.
Это упростит анализ ваших данных: https://github.com/synappnz/php-csv
include "csv.php";
$csv = new csv(file_get_contents("filename.csv"));
$rows = $csv->rows();
foreach ($rows as $row)
{
// do something with $row
}