Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

KikoLdasd's avatar

Convert csv to json

Hi, I would like to do two routes to give them for example a parameter convert?source = something.csv that I can take from a folder and turn it into a json and I would do the same for a sql

function csvToJson($fname) {
    if (!($fp = fopen($fname, 'r'))) {
        die("Can't open file...");
    }
    

    $key = fgetcsv($fp,"1024",",");

    $json = array();
        while ($row = fgetcsv($fp,"1024",",")) {
        $json[] = array_combine($key, $row);
    }
    

    fclose($fp);

    return json_encode($json);
}
Route::get('/convert/source?=/something.csv', 'ConvertController@csvToJson');

But I don't know how I could do that, giving the path only something.csv and taking only the .csv files

0 likes
1 reply
bugsysha's avatar
$csv= file_get_contents($file);
$array = array_map('str_getcsv', explode(PHP_EOL, $csv));
return json_encode($array);

Please or to participate in this conversation.