Bird
Raised Fist0
PHPprogramming~20 mins

Writing files (fwrite, file_put_contents) in PHP - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
File Writing Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this PHP code writing to a file?
Consider this PHP code that writes text to a file. What will be the content of the file example.txt after running this code?
PHP
<?php
$file = fopen('example.txt', 'w');
fwrite($file, "Hello");
fwrite($file, " World");
fclose($file);
?>
AThe file contains: Hello\nWorld
BThe file contains: HelloWorld
CThe file contains: Hello World
DThe file is empty
Attempts:
2 left
💡 Hint
Remember fwrite writes exactly what you give it without adding spaces.
❓ Predict Output
intermediate
2:00remaining
What does file_put_contents write to the file?
What will be the content of data.txt after running this PHP code?
PHP
<?php
file_put_contents('data.txt', "Line1\nLine2");
?>
A
Line1
Line2
BLine1 Line2
CLine1\nLine2
DAn empty file
Attempts:
2 left
💡 Hint
Check how PHP interprets escape sequences inside double quotes.
🔧 Debug
advanced
2:00remaining
Why does this fwrite code cause an error?
This PHP code tries to write to a file but causes an error. What is the cause?
PHP
<?php
$file = fopen('output.txt', 'r');
fwrite($file, "Test");
fclose($file);
?>
Afclose must be called before fwrite
BThe file 'output.txt' does not exist, causing fwrite to fail
Cfwrite requires the file to be opened in binary mode
Dfopen mode 'r' opens file for reading only, so fwrite fails
Attempts:
2 left
💡 Hint
Check the fopen mode and what it allows.
🧠 Conceptual
advanced
2:00remaining
How does file_put_contents behave with FILE_APPEND flag?
What will be the content of log.txt after running this PHP code twice in a row?
PHP
<?php
file_put_contents('log.txt', "Entry1\n");
file_put_contents('log.txt', "Entry2\n", FILE_APPEND);
?>
A
Entry1
Entry2
B
Entry1
Entry1
Entry2
C
Entry1
D
Entry2
Attempts:
2 left
💡 Hint
FILE_APPEND adds content to the end of the file instead of overwriting.
❓ Predict Output
expert
2:00remaining
What is the number of bytes written by fwrite here?
Given this PHP code, what is the value of $bytes after fwrite runs?
PHP
<?php
$file = fopen('test.txt', 'w');
$bytes = fwrite($file, "Hello\nWorld");
fclose($file);
echo $bytes;
?>
A12
B11
C10
D5
Attempts:
2 left
💡 Hint
Count all characters including the newline.

Practice

(1/5)
1. Which PHP function is best for quickly writing a string to a file without manually opening or closing it?
easy
A. fclose
B. fwrite
C. fopen
D. file_put_contents

Solution

  1. Step 1: Understand the purpose of file_put_contents

    This function writes data to a file in one step, handling opening and closing automatically.
  2. Step 2: Compare with fwrite

    fwrite requires manual file opening and closing, so it's not as quick for simple writes.
  3. Final Answer:

    file_put_contents -> Option D
  4. Quick Check:

    Quick file write = file_put_contents [OK]
Hint: Use file_put_contents for quick file writes without fopen/fclose [OK]
Common Mistakes:
  • Confusing fwrite as a standalone write function
  • Thinking fopen writes data
  • Assuming fclose writes data
2. Which of the following is the correct syntax to write "Hello" to a file named "greet.txt" using fwrite?
easy
A. $file = fopen('greet.txt'); fwrite($file, 'Hello');
B. $file = fopen('greet.txt', 'w'); fwrite($file, 'Hello'); fclose($file);
C. file_put_contents('greet.txt', 'Hello');
D. fwrite('greet.txt', 'Hello');

Solution

  1. Step 1: Check the correct usage of fwrite

    fwrite requires a file handle from fopen opened in write mode.
  2. Step 2: Validate the full sequence

    $file = fopen('greet.txt', 'w'); fwrite($file, 'Hello'); fclose($file); opens the file in write mode, writes "Hello", then closes the file properly.
  3. Final Answer:

    $file = fopen('greet.txt', 'w'); fwrite($file, 'Hello'); fclose($file); -> Option B
  4. Quick Check:

    fopen + fwrite + fclose = correct syntax [OK]
Hint: Always fopen with 'w' before fwrite, then fclose [OK]
Common Mistakes:
  • Calling fwrite without fopen file handle
  • Missing file mode in fopen
  • Not closing the file after writing
3. What will be the output of this PHP code?
$filename = 'data.txt';
file_put_contents($filename, "Line1\n");
$file = fopen($filename, 'a');
fwrite($file, "Line2\n");
fclose($file);
echo file_get_contents($filename);
medium
A. Line2
B. Line1
C. Line1 Line2
D. Error: file not found

Solution

  1. Step 1: Analyze file_put_contents call

    This writes "Line1\n" to 'data.txt', creating or overwriting the file.
  2. Step 2: Analyze fopen with 'a' mode and fwrite

    Opening in append mode adds "Line2\n" after existing content.
  3. Step 3: Read file content with file_get_contents

    It returns both lines concatenated with newlines.
  4. Final Answer:

    Line1 Line2 -> Option C
  5. Quick Check:

    Append mode adds lines, so both lines appear [OK]
Hint: file_put_contents overwrites; fopen 'a' appends [OK]
Common Mistakes:
  • Assuming file_put_contents appends instead of overwrites
  • Forgetting 'a' mode appends
  • Expecting only last line output
4. Identify the error in this PHP code snippet that tries to write "Test" to "file.txt":
$file = fopen('file.txt', 'r');
fwrite($file, 'Test');
fclose($file);
medium
A. File opened in read mode, cannot write
B. Missing semicolon after fwrite
C. fclose called before fwrite
D. fopen filename missing extension

Solution

  1. Step 1: Check fopen mode

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

    Writing requires 'w', 'a', or 'r+' mode; 'r' mode causes error on fwrite.
  3. Final Answer:

    File opened in read mode, cannot write -> Option A
  4. Quick Check:

    Write needs write mode, not 'r' [OK]
Hint: Open file with 'w' or 'a' to write, not 'r' [OK]
Common Mistakes:
  • Using 'r' mode when writing
  • Ignoring file mode errors
  • Assuming fwrite works on read-only handle
5. You want to save user input lines into a file, but only if the input is not empty or whitespace. Which PHP code snippet correctly writes non-empty trimmed lines to "input.txt" using fwrite?
hard
A. $file = fopen('input.txt', 'w'); foreach ($lines as $line) { if (trim($line) !== '') { fwrite($file, $line . "\n"); } } fclose($file);
B. $file = fopen('input.txt', 'w'); foreach ($lines as $line) { fwrite($file, $line . "\n"); } fclose($file);
C. file_put_contents('input.txt', implode("\n", $lines));
D. $file = fopen('input.txt', 'r'); foreach ($lines as $line) { if ($line) { fwrite($file, $line); } } fclose($file);

Solution

  1. Step 1: Check file open mode

    $file = fopen('input.txt', 'w'); foreach ($lines as $line) { if (trim($line) !== '') { fwrite($file, $line . "\n"); } } fclose($file); opens file in 'w' mode, allowing writing and overwriting.
  2. Step 2: Validate input filtering

    It uses trim($line) !== '' to skip empty or whitespace-only lines before writing.
  3. Step 3: Confirm writing and closing

    Writes each valid line with newline and closes file properly.
  4. Final Answer:

    Option A code snippet -> Option A
  5. Quick Check:

    Trim check + fwrite + 'w' mode = correct [OK]
Hint: Trim input lines and write only non-empty with fwrite [OK]
Common Mistakes:
  • Not trimming lines before writing
  • Opening file in 'r' mode when writing
  • Using file_put_contents without filtering
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