Я очень новичок в веб-разработке. На самом деле, я только начинаю учиться.
Может кто-нибудь, пожалуйста, дайте полный, но очень простой пример того, как импортировать CSV-файл в PHP? Я попробовал тот, который я получил из Интернета, но я очень смущен, потому что это сложно для меня. Я использую сервер WAMP с PHP 5.3.5, Apache 2.2.17 и MySQL 5.5.8. Пожалуйста помоги.
Я попытался вставить код, но он грязный. Честно говоря, я также очень новичок в StackOverflow.
Из руководства по PHP:
<?php $row = 1; if (($handle = fopen("test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num fields in line $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } ?>
Я знаю, что это было задано более трех лет назад. Но принятый ответ не очень полезен.
Следующий код более полезен.
<?php $File = 'loginevents.csv'; $arrResult = array(); $handle = fopen($File, "r"); if(empty($handle) === false) { while(($data = fgetcsv($handle, 1000, ",")) !== FALSE){ $arrResult[] = $data; } fclose($handle); } print_r($arrResult); ?>
PHP> 5.3 использовать fgetcsv () или str_getcsv () . Не может быть проще.
Самый простой способ, которым я знаю ( str_getcsv ), импортировать CSV-файл в массив.
$csv = array_map('str_getcsv', file('data.csv'));
$row = 1; $arrResult = array(); if (($handle = fopen("ifsc_code.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); DB::table('banks')->insert( array('bank_name' => $data[1], 'ifsc' => $data[2], 'micr' => $data[3], 'branch_name' => $data[4],'address' => $data[5], 'contact' => $data[6], 'city' => $data[7],'district' => $data[8],'state' => $data[9]) ); } fclose($handle); }
$filename=mktime().'_'.$_FILES['import']['name']; $path='common/csv/'.$filename; if(move_uploaded_file($_FILES['import']['tmp_name'],$path)) { if(mysql_query("load data local infile '".$path."' INTO TABLE tbl_customer FIELDS TERMINATED BY ',' enclosed by '\"' LINES TERMINATED BY '\n' IGNORE 1 LINES (`location`, `maildropdate`,`contact_number`,`first_name`,`mname`,`lastname`,`suffix`,`address`,`city`,`state`,`zip`)")) { echo "imported successfully"; } echo "<br>"."Uploaded Successfully".$path; }
смотрите здесь для дальнейшей информации
Если вы используете композитор, вы можете попробовать CsvFileLoader
Вот версия для извлечения конкретных столбцов по имени (изменено с @coreyward ):
$row = 0; $headers = []; $filepath = "input.csv"; if (($handle = fopen($filepath, "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { if (++$row == 1) { $headers = array_flip($data); // Get the column names from the header. continue; } else { $col1 = $data[$headers['Col1Name']]; // Read row by the column name. $col2 = $data[$headers['Col2Name']]; print "Row $row: $col1, $col2\n"; } } fclose($handle); }