0

I'm trying to import CSV file in order to automate the candidacies insertion.

As a first step, the user imports an excel file (.xls, .xls). From file, I convert it to csv in order to exploit it better thanks to PhpSpreadSheet library.

Example of csv file : enter image description here

I would like to recover only some data columns, like lastName, firstName, gender, phonenumber .

For that, I'm using regular expressions to detect them. In every detection, I store the result in array. However afterward, how can I recover data from these columns ?

$headers = [];
if(($handle = fopen($loadedSheetName.'.csv', "r")) !== FALSE) 
{
    foreach (fgetcsv($handle, 1000, ';') as $key => $header) 
    {
        if (preg_match('/^(lastName)/i', $header, $matches)) 
        {
            $headers[$key] = $header;
        }

        if (preg_match('/^(firstName)/i', $header, $matches)) 
        {
            $headers[$key] = $header;
        }

        if (preg_match("/^(gender)/i", $header, $matches)) 
        {
            $headers[$key] = $header;
        }

        if (preg_match("/^(phoneNumber)/i", $header, $matches)) 
        {
            $headers[$key] = $header;
        }
    }

    $keys = array_keys($headers);
    $values = array_values($headers);

    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
    {    
        $num = count($data);

        for ($c=0; $c < $num; $c++) 
        {
            echo $data[$c] . "<br />\n";
        }
    }

    fclose($handle);
}
0

1 Answer 1

1
<?php
$headers = [];
$skip_headers = Array('lastname', 'firstname', 'gender', 'phonenumber');
if(($handle = fopen($loadedSheetName.'.csv', "r")) !== FALSE) 
{
    foreach (fgetcsv($handle, 1000, ';') as $key => $header) 
    {
        if (!in_array(strtolower($header), $skip_headers)) 
        {
            $headers[$key] = $header;
        }

    }


    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
    {    
       foreach ($headers as $key_ => $value)
       {
           echo $data[$key_] . "<br />\n";
       }
    }

    fclose($handle);
}
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks for your answer @stefo91, but with your code, I still recover all the content file :/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.