Bird
Raised Fist0
PHPprogramming~20 mins

File open modes in PHP - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
File Open Modes 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 when opening a file in 'r' mode?
Consider the following PHP code snippet. What will it output if the file 'example.txt' exists and contains the text 'Hello World'?
PHP
<?php
$handle = fopen('example.txt', 'r');
$content = fread($handle, 5);
echo $content;
fclose($handle);
?>
AWorld
BError: Cannot open file
CHello World
DHello
Attempts:
2 left
💡 Hint
The 'r' mode opens the file for reading from the beginning.
❓ Predict Output
intermediate
2:00remaining
What happens when opening a non-existent file in 'r' mode?
What will the following PHP code output if 'nofile.txt' does not exist?
PHP
<?php
$handle = fopen('nofile.txt', 'r');
if (!$handle) {
    echo 'Failed to open file';
} else {
    echo 'File opened';
}
?>
AFile opened
BFailed to open file
CWarning: fopen(): failed to open stream: No such file or directory
DEmpty output
Attempts:
2 left
💡 Hint
The 'r' mode requires the file to exist.
❓ Predict Output
advanced
2:00remaining
What is the output when writing to a file opened in 'w' mode?
Given the file 'data.txt' contains 'Old Data', what will be the content of the file after running this PHP code?
PHP
<?php
$handle = fopen('data.txt', 'w');
fwrite($handle, 'New Data');
fclose($handle);
$contents = file_get_contents('data.txt');
echo $contents;
?>
ANew Data
BError: Cannot write to file
COld DataNew Data
DOld Data
Attempts:
2 left
💡 Hint
The 'w' mode truncates the file before writing.
❓ Predict Output
advanced
2:00remaining
What will be the output when appending to a file with 'a' mode?
If 'log.txt' initially contains 'Line1\n', what will be the content after running this PHP code?
PHP
<?php
$handle = fopen('log.txt', 'a');
fwrite($handle, 'Line2\n');
fclose($handle);
$contents = file_get_contents('log.txt');
echo $contents;
?>
A
Line1
Line2
B
Line2
CLine1
DError: Cannot append to file
Attempts:
2 left
💡 Hint
The 'a' mode adds data to the end of the file without deleting existing content.
🧠 Conceptual
expert
2:00remaining
Which file open mode allows reading and writing without truncating the file?
In PHP, which file open mode lets you read and write to a file without deleting its existing content at open?
A'x+'
B'w+'
C'r+'
D'a+'
Attempts:
2 left
💡 Hint
One mode opens the file for reading and writing but does not clear it.

Practice

(1/5)
1. Which PHP file open mode allows you to read from a file without changing its contents?
easy
A. r - Open for reading only
B. w - Open for writing only
C. a - Open for appending
D. x - Create and open for writing

Solution

  1. Step 1: Understand the purpose of each mode

    r mode opens a file for reading only, without modifying it. Other modes allow writing or creating files.
  2. Step 2: Match the mode to the requirement

    Since the question asks for reading without changing, r is the correct mode.
  3. Final Answer:

    r - Open for reading only -> Option A
  4. Quick Check:

    Read only = r [OK]
Hint: Read only mode is just 'r' in PHP file functions [OK]
Common Mistakes:
  • Choosing 'w' which overwrites the file
  • Confusing 'a' (append) with read mode
  • Using 'x' which creates a new file
2. Which of the following is the correct syntax to open a file for writing in PHP?
easy
A. fopen('file.txt', 'r')
B. fopen('file.txt', 'a')
C. fopen('file.txt', 'rw')
D. fopen('file.txt', 'w')

Solution

  1. Step 1: Recall the mode for writing

    The mode 'w' opens a file for writing and truncates it if it exists.
  2. Step 2: Check syntax correctness

    fopen('file.txt', 'w') is the correct syntax to open for writing.
  3. Final Answer:

    fopen('file.txt', 'w') -> Option D
  4. Quick Check:

    Write mode = 'w' [OK]
Hint: Use 'w' to open file for writing in fopen [OK]
Common Mistakes:
  • Using 'r' which is read-only
  • Using 'rw' which is invalid in PHP
  • Confusing 'a' (append) with write
3. What will be the output of this PHP code?
$file = fopen('test.txt', 'a');
fwrite($file, "Hello\n");
fclose($file);
echo file_get_contents('test.txt');
medium
A. Hello
B. Empty output
C. Error: Cannot write to file
D. olleH

Solution

  1. Step 1: Understand the 'a' mode effect

    Mode 'a' opens the file for appending, so "Hello\n" (string with actual newline) is added at the end.
  2. Step 2: Check output of file_get_contents

    It reads the whole file content including the newline, and echo prints it with the newline interpreted.
  3. Final Answer:

    Hello -> Option A
  4. Quick Check:

    "Hello\n" adds a newline, so output is Hello followed by newline [OK]
Hint: Append adds 'Hello\n'; echo shows Hello with newline [OK]
Common Mistakes:
  • Thinking '\n' becomes literal backslash-n
  • Expecting 'Hello' without newline
  • Assuming error without write permission
4. Identify the error in this PHP code snippet:
$file = fopen('data.txt', 'r');
fwrite($file, 'Test');
fclose($file);
medium
A. Missing file path
B. File not closed properly
C. Cannot write to a file opened in 'r' mode
D. fwrite syntax is incorrect

Solution

  1. Step 1: Check file open mode

    The file is opened in 'r' mode which is read-only and does not allow writing.
  2. Step 2: Understand fwrite limitation

    Calling fwrite on a read-only file causes an error because writing is not permitted.
  3. Final Answer:

    Cannot write to a file opened in 'r' mode -> Option C
  4. Quick Check:

    Write needs 'w' or 'a' mode [OK]
Hint: Write only works if file opened with 'w' or 'a' [OK]
Common Mistakes:
  • Ignoring mode restrictions
  • Assuming fclose fixes write errors
  • Confusing syntax errors with mode errors
5. You want to open a file in PHP to read and write without truncating it, and create it if it doesn't exist. Which mode should you use?
hard
A. w+
B. a+
C. r+
D. x+

Solution

  1. Step 1: Understand each mode's behavior

    r+ reads/writes but fails if file missing; w+ truncates file; a+ reads/writes, creates if missing, appends writes; x+ creates new file only.
  2. Step 2: Match requirements

    We want read/write, no truncation, and create if missing. a+ fits all: it opens for reading and appending, creates file if missing, and does not truncate.
  3. Final Answer:

    a+ -> Option B
  4. Quick Check:

    Read/write + create + no truncate = a+ [OK]
Hint: Use 'a+' to read/write and create without truncating [OK]
Common Mistakes:
  • Choosing 'r+' which fails if file missing
  • Choosing 'w+' which truncates file
  • Confusing 'x+' which fails if file exists
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