Подтвердить что ты не робот

Как импортировать CSV файл в PHP?

Я очень новичок в веб-разработке. Фактически, я только начинаю учиться.

Может кто-нибудь, пожалуйста, дайте полный, но очень простой пример того, как импортировать CSV файл в PHP? Я попробовал тот, который я получил из Интернета, но я очень смущен, потому что это сложно для меня. Я использую сервер WAMP с PHP 5.3.5, Apache 2.2.17 и MySQL 5.5.8. Пожалуйста, помогите.

Я пытался вставить код, но он беспорядочен. Честно говоря, я также очень новичок в StackOverflow.

4b9b3361

Ответ 1

Из PHP manual:

<?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);
}
?>

Ответ 2

Я знаю, что это было задано более трех лет назад. Но принятый ответ не очень полезен.

Следующий код более полезен.

<?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);
?>

Ответ 3

PHP > 5.3 использовать fgetcsv() или str_getcsv(). Не может быть проще.

Ответ 4

Самый простой способ, которым я знаю (str_getcsv), он импортирует CSV файл в массив.

$csv = array_map('str_getcsv', file('data.csv'));

Ответ 5

$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);
    }

Ответ 6

   $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;

}

посмотрите здесь для дальнейшей информации

Ответ 7

Если вы используете композитор, вы можете попробовать CsvFileLoader

Ответ 8

Вот версия для извлечения определенных столбцов по имени (изменено с @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);
}