Skrivning til og tilføjelse i filer
Skriv data til filer med file_put_contents og FILE_APPEND.
Skrivning til og tilføjelse i filer er en gratis PHP Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i PHP Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. PHP Academy-kurset indeholder 4 lektioner i alt.
Skrivning af filer i PHP
PHP giver flere måder at skrive til filer på:
file_put_contents()— skriv en streng til en fil med ét kaldfopen()+fwrite()— strøm-baseret skrivning- Brug flaget
FILE_APPENDtil at tilføje i stedet for at overskrive
file_put_contents()
Skriv en streng til en fil — opretter filen, hvis den ikke findes, og overskriver den, hvis den findes:
<?php
$data = "Hello, PHP!\nThis is line 2.\n";
$bytes = file_put_contents('/tmp/output.txt', $data);
if ($bytes === false) {
echo 'Failed to write';
} else {
echo "Wrote $bytes bytes";
}Tilføjelse med FILE_APPEND
Tilføj indhold i slutningen af en eksisterende fil med flaget FILE_APPEND:
<?php
$logEntry = date('Y-m-d H:i:s') . ' - User logged in' . PHP_EOL;
file_put_contents(
'/var/log/app.log',
$logEntry,
FILE_APPEND | LOCK_EX // append + exclusive lock
);Skrivetilstande for fopen
Åbningstilstandene for fopen bestemmer, hvordan filen åbnes:
'w'— skriv, afkort til længde nul eller opret'a'— skriv, tilføj, og opret hvis filen ikke findes'x'— skriv, og mislykkes hvis filen allerede findes'r+'— læs og skriv fra begyndelsen, filen skal findes
fopen + fwrite
Strøm-baseret skrivning med præcis kontrol:
<?php
$handle = fopen('/tmp/report.txt', 'w');
if ($handle === false) die('Cannot open file');
fwrite($handle, "Report generated: " . date('Y-m-d') . "\n");
fwrite($handle, str_repeat('-', 40) . "\n");
fwrite($handle, "Total: 1234\n");
fclose($handle);
echo 'Report written';Skrivning af CSV-filer
Brug fputcsv() til at skrive korrekt formaterede CSV-linjer:
<?php
$rows = [
['Name', 'Email', 'Score'],
['Alice', 'alice@test.com', 95],
['Bob', 'bob@test.com', 87],
];
$handle = fopen('/tmp/results.csv', 'w');
foreach ($rows as $row) {
fputcsv($handle, $row);
}
fclose($handle);Skrivning af JSON-filer
Serialisér PHP-data til JSON, og skriv dem til en fil:
<?php
$config = [
'version' => '2.0',
'debug' => false,
'db' => ['host' => 'localhost', 'port' => 3306],
];
$json = json_encode($config, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
file_put_contents('/app/config.json', $json);
echo 'Config saved';Atomisk filskrivning
Skriv til en midlertidig fil, og omdøb den derefter for at få atomiske opdateringer, der er sikre ved nedbrud:
<?php
$target = '/app/data.json';
$tmpFile = $target . '.tmp.' . uniqid();
$data = json_encode(['ts' => time(), 'value' => 42]);
file_put_contents($tmpFile, $data, LOCK_EX);
rename($tmpFile, $target); // atomic on most OSes
echo 'File updated atomically';Tilladelser og ejerskab
Angiv filtilladelser efter oprettelsen med chmod():
<?php
$path = '/var/www/uploads/avatar.jpg';
// Copy uploaded temp file to destination
move_uploaded_file($_FILES['avatar']['tmp_name'], $path);
// Set permissions (owner read/write, group read, world read)
chmod($path, 0644);
echo 'File uploaded and permissions set';Midlertidige filer
Opret midlertidige filer sikkert med tempnam() eller tmpfile():
<?php
// Create a named temp file
$tmpPath = tempnam(sys_get_temp_dir(), 'php_');
file_put_contents($tmpPath, 'temp data');
$content = file_get_contents($tmpPath);
unlink($tmpPath); // delete when done
// Anonymous temp file handle
$tmp = tmpfile();
fwrite($tmp, 'anonymous temp');
// auto-deleted when $tmp is garbage collectedKopiering og flytning af filer
Kopiér og omdøb eller flyt filer med indbyggede funktioner:
<?php
// Copy a file
copy('/src/template.html', '/dst/page.html');
// Move / rename
rename('/tmp/upload_abc', '/storage/images/photo.jpg');
// Delete
unlink('/tmp/old_file.txt');
// Check if file was copied successfully
if (copy('a.txt', 'backup.txt')) {
echo 'Backup created';
}Hurtigt tjek
Hvilket flag sender du til file_put_contents() for at tilføje indhold i slutningen af en fil i stedet for at overskrive den?
Opsummering: Skrivning af filer
Det vigtigste ved filskrivning:
file_put_contents()— den enkleste skrivning eller overskrivning- Flaget
FILE_APPENDtil tilføjelse fopen('a', ...)+fwrite()til strøm-baseret skrivningfputcsv()til CSV-uddata- Atomisk skrivning: skriv til en midlertidig fil +
rename() chmod()til angivelse af tilladelser efter oprettelsen
Lær PHP med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 49
- Lektioner
- 195
Ofte stillede spørgsmål
Er lektionen “Skrivning til og tilføjelse i filer” gratis?
Ja — hele teksten til “Skrivning til og tilføjelse i filer” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af PHP Academy-kurset, skal du opgradere til CoddyKit PRO. PHP Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Skrivning til og tilføjelse i filer”?
Skriv data til filer med file_put_contents og FILE_APPEND. Du øver dig i PHP Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på PHP Academy?
Der kræves ingen tidligere erfaring. PHP Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Skrivning til og tilføjelse i filer”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne PHP Academy-lektion?
Ja. Alle PHP Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Læsning af filer med PHP
- Skrivning til og tilføjelse i filer
- Arbejde med mapper
- Håndtering af filuploads