PHP Academy · Lektion

Skrivning til og tilføjelse i filer

Skriv data til filer med file_put_contents og FILE_APPEND.

Lektion 2 af 413 trin

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 kald
  • fopen() + fwrite() — strøm-baseret skrivning
  • Brug flaget FILE_APPEND til 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 collected

Kopiering 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_APPEND til tilføjelse
  • fopen('a', ...) + fwrite() til strøm-baseret skrivning
  • fputcsv() til CSV-uddata
  • Atomisk skrivning: skriv til en midlertidig fil + rename()
  • chmod() til angivelse af tilladelser efter oprettelsen
Gratis at komme i gang

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

  1. Læsning af filer med PHP
  2. Skrivning til og tilføjelse i filer
  3. Arbejde med mapper
  4. Håndtering af filuploads
← Tilbage til PHP Academy