Bird
Raised Fist0
PHPprogramming~5 mins

CSV file reading and writing in PHP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What PHP function is commonly used to read a CSV file line by line?
The fgetcsv() function reads a line from an open file and parses it as CSV, returning an array of fields.
Click to reveal answer
beginner
How do you open a file for writing CSV data in PHP?
Use fopen() with the mode 'w' to open a file for writing. This will create the file if it doesn't exist or overwrite it if it does.
Click to reveal answer
beginner
Which PHP function writes an array as a CSV line to a file?
The fputcsv() function takes an array and writes it as a CSV formatted line to an open file.
Click to reveal answer
beginner
What is the purpose of closing a file after reading or writing CSV data?
Closing a file with fclose() frees system resources and ensures all data is properly saved and no corruption occurs.
Click to reveal answer
intermediate
How can you handle CSV files with different delimiters in PHP?
Both fgetcsv() and fputcsv() accept an optional delimiter parameter to specify characters like semicolon ; instead of comma ,.
Click to reveal answer
Which function reads a CSV line into an array in PHP?
Afgetcsv()
Bfputcsv()
Cfread()
Dfile_get_contents()
What mode should you use with fopen() to write a new CSV file?
A'w'
B'r'
C'a'
D'x'
Which function writes an array as a CSV line to a file?
Afwrite()
Bfgetcsv()
Cfputcsv()
Dfile_put_contents()
Why should you always close a file after reading or writing CSV data?
ATo delete the file
BTo free system resources and save data properly
CTo open it again automatically
DTo convert it to JSON
How can you read a CSV file that uses semicolons instead of commas?
AUse <code>file_get_contents()</code> without changes
BUse <code>fread()</code> only
CReplace semicolons manually after reading
DUse <code>fgetcsv()</code> with the delimiter parameter set to ';'
Explain the steps to read a CSV file line by line in PHP and process each row.
Think about opening, reading, looping, and closing the file.
You got /4 concepts.
    Describe how to write multiple rows of data to a CSV file in PHP.
    Remember to open, write each row, then close.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which PHP function is used to read a line from a CSV file and parse it into an array?
      easy
      A. fgetcsv()
      B. fputcsv()
      C. fread()
      D. fwrite()

      Solution

      1. Step 1: Understand CSV reading functions

        PHP provides fgetcsv() to read a line from a CSV file and convert it into an array of values.
      2. Step 2: Differentiate from writing functions

        fputcsv() writes arrays to CSV files, while fread() and fwrite() handle raw file reading/writing without CSV parsing.
      3. Final Answer:

        fgetcsv() -> Option A
      4. Quick Check:

        Read CSV line as array = fgetcsv() [OK]
      Hint: Use fgetcsv() to read CSV lines into arrays [OK]
      Common Mistakes:
      • Confusing fgetcsv() with fputcsv()
      • Using fread() which reads raw data, not CSV parsed
      • Trying to read CSV without parsing into arrays
      2. Which of the following is the correct way to open a CSV file for writing in PHP?
      easy
      A. $file = fopen('data.csv', 'r');
      B. $file = fopen('data.csv', 'rw');
      C. $file = fopen('data.csv', 'w');
      D. $file = fopen('data.csv', 'x');

      Solution

      1. Step 1: Understand fopen modes

        Mode 'w' opens a file for writing and truncates it if it exists, perfect for writing CSV files.
      2. Step 2: Check other modes

        'r' is read-only, 'rw' is invalid, 'x' creates a new file but fails if it exists.
      3. Final Answer:

        $file = fopen('data.csv', 'w'); -> Option C
      4. Quick Check:

        Open file for writing = 'w' mode [OK]
      Hint: Use 'w' mode in fopen() to write files [OK]
      Common Mistakes:
      • Using 'r' mode when intending to write
      • Using invalid mode 'rw'
      • Using 'x' which fails if file exists
      3. What will be the output of the following PHP code snippet?
      $file = fopen('data.csv', 'r');
      $data = fgetcsv($file);
      fclose($file);
      print_r($data);

      Assuming the first line of data.csv is:
      John,Doe,30
      medium
      A. Array ( [0] => John [1] => Doe [2] => 30 )
      B. John,Doe,30
      C. Array ( [0] => 'John,Doe,30' )
      D. Error: Cannot read file

      Solution

      1. Step 1: Understand fgetcsv() output

        fgetcsv() reads one CSV line and returns an array splitting values by commas.
      2. Step 2: Analyze given CSV line

        The line 'John,Doe,30' splits into array elements: 'John', 'Doe', and '30'.
      3. Final Answer:

        Array ( [0] => John [1] => Doe [2] => 30 ) -> Option A
      4. Quick Check:

        fgetcsv() splits CSV line into array [OK]
      Hint: fgetcsv() returns array of CSV fields from one line [OK]
      Common Mistakes:
      • Expecting a string instead of an array
      • Assuming fgetcsv returns raw line string
      • Not closing the file after reading
      4. Identify the error in the following PHP code that writes data to a CSV file:
      $file = fopen('output.csv', 'r');
      fputcsv($file, ['Alice', 'Smith', 25]);
      fclose($file);
      medium
      A. Array syntax is incorrect
      B. fputcsv() cannot write arrays
      C. Missing fclose() call
      D. File opened in read mode instead of write mode

      Solution

      1. Step 1: Check fopen mode

        The file is opened with 'r' (read) mode, which does not allow writing.
      2. Step 2: Understand fputcsv requirements

        fputcsv() requires the file to be opened in write ('w') or append ('a') mode to write data.
      3. Final Answer:

        File opened in read mode instead of write mode -> Option D
      4. Quick Check:

        Open file in write mode before writing [OK]
      Hint: Open file with 'w' or 'a' before writing CSV [OK]
      Common Mistakes:
      • Opening file in 'r' mode when writing
      • Forgetting to close the file
      • Misunderstanding fputcsv() input
      5. You want to read a CSV file and write only rows where the third column is greater than 50 to a new CSV file. Which code snippet correctly implements this?
      hard
      A. $in = fopen('input.csv', 'w'); $out = fopen('output.csv', 'r'); while (($row = fgetcsv($in)) !== false) { if ($row[2] > 50) { fputcsv($out, $row); } } fclose($in); fclose($out);
      B. $in = fopen('input.csv', 'r'); $out = fopen('output.csv', 'w'); while (($row = fgetcsv($in)) !== false) { if ($row[2] > 50) { fputcsv($out, $row); } } fclose($in); fclose($out);
      C. $in = fopen('input.csv', 'r'); $out = fopen('output.csv', 'w'); while (($row = fgetcsv($out)) !== false) { if ($row[2] > 50) { fputcsv($in, $row); } } fclose($in); fclose($out);
      D. $in = fopen('input.csv', 'r'); $out = fopen('output.csv', 'w'); while (($row = fgets($in)) !== false) { if ($row[2] > 50) { fputcsv($out, $row); } } fclose($in); fclose($out);

      Solution

      1. Step 1: Open input file for reading and output file for writing

        Use 'r' mode for reading input and 'w' mode for writing output.
      2. Step 2: Read each CSV row with fgetcsv() from input and check third column

        Use fgetcsv($in) to read rows, then check if $row[2] > 50.
      3. Step 3: Write qualifying rows to output with fputcsv()

        If condition passes, write row to output file using fputcsv($out, $row).
      4. Final Answer:

        Code snippet B correctly reads, filters, and writes CSV rows -> Option B
      5. Quick Check:

        Read with fgetcsv(), filter by column, write with fputcsv() [OK]
      Hint: Read with fgetcsv(), filter rows, write with fputcsv() [OK]
      Common Mistakes:
      • Opening files with wrong modes
      • Using fgets() instead of fgetcsv() for CSV reading
      • Mixing input and output file handles
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard