解析php上的大型csv文件

I have a csv file, which is tab delimited. Inside the cells have used a semicolon as a separator between values. Whether php means to process the file and get to the exit to the right of each line array of values.

here is my code:

$handle = fopen($name_csv, "r");
            $data_import = array();
            if(empty($handle) === false) {
                while(($data = fgetcsv($handle, 1000, "\t")) !== FALSE) {
                    foreach( $data as $key => $val ) {

                        $data[$key] = trim( $data[$key] );
                        $data[$key] = iconv('windows-1251', 'UTF-8', $data[$key]);
                        $data[$key] = str_replace('""', '"', $data[$key]);
                        $data[$key] = preg_replace("/^\"(.*)\"$/sim", "$1", $data[$key]);

                    }
                    $data_import[] = $data;
                }
                fclose($handle);
            }

output array:

Array
(
    [0] => Array
        (
            [0] => test;test;test;"test value; test value";test
        )

The file size 300 MB.

original csv:

test;test;test;"test value; test value";test
test;test;test;"test value; test value";test
test;test;test;"test value; test value";test
test;test;test;"test value; test value";test