5

I need to create a CSV file in PHP and that created file should be saved on local/server rather than asking to save.

3
  • just write the out put to a file instead of outputting to browser Commented Jun 10, 2013 at 13:10
  • 1
    Could you clarify or provide more details please? I am interpreting your question as: "I have a server running PHP. I need generate a CSV file in PHP and save on the local filesystem." -- is that the correct interpretation? I guess I don't understand when you would be "asked to save." Commented Jun 10, 2013 at 13:10
  • Search is your friend - stackoverflow.com/questions/12398750/… Commented Jun 10, 2013 at 13:11

1 Answer 1

22

For the PHP versions later than 5.1.0 you can use the built-in CSV functions.

<?php

$data_array = array (
            array ('col1','col2'),
            array ('2','2'),
            array ('3','6'),
            array ('4','2'),
            array ('6','5')
        );

$fp = fopen('csvfile.csv', 'w');

foreach ($list as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);
?>

This code will do the trick

$data_array = array (
            array ('1','2'),
            array ('2','2'),
            array ('3','6'),
            array ('4','2'),
            array ('6','5')
            );

$csv = "col1,col2 \n";//Column headers
foreach ($data_array as $record){
    $csv.= $record[0].','.$record[1]."\n"; //Append data to csv
    }

$csv_handler = fopen ('csvfile.csv','w');
fwrite ($csv_handler,$csv);
fclose ($csv_handler);

echo 'Data saved to csvfile.csv';

but be sure about permission of csvfile so your script can create or write on it

Sign up to request clarification or add additional context in comments.

2 Comments

@samyMassoud Does the csvfile.csv already have to exist on the server or are you creating this on the fly?
fopen will create it on the fly , if it has permission over folder of this 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.