PHP reads and writes files for logs, caches, uploads, and imports. Know safe paths, permissions, and when to use streams for large files.
Reading and writing
$text = file_get_contents('/path/to/file.txt');
file_put_contents('/path/to/out.json', $json, LOCK_EX);
$handle = fopen('/path/to/data.csv', 'r');
while (($line = fgets($handle)) !== false) {
// process line
}
fclose($handle);
Uploads
$_FILES contains temp paths, sizes, and MIME types. Move with move_uploaded_file to a non-executable directory; validate type and size server-side.
Safety
- Never use user input directly as filesystem paths (path traversal)
- Store uploads outside web root or disable script execution
- Use
realpathand prefix checks for allowed directories
Self-check
- Why
LOCK_EXon concurrent writes? - What function moves an uploaded temp file?