PHP Academy · leksjon

Skrive til og legge til i filer

Skriv data til filer med file_put_contents og FILE_APPEND.

Leksjon 2 av 413 trinn

Skrive til og legge til i filer er en gratis leksjon i PHP Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i PHP Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i PHP Academy inneholder totalt 4 leksjoner.

Skrive filer i PHP

PHP tilbyr flere måter å skrive til filer på:

  • file_put_contents() – skriv en tekststreng til en fil i ett kall
  • fopen() + fwrite() – strømbasert skriving
  • Bruk flagget FILE_APPEND for å legge til innhold i stedet for å overskrive

file_put_contents()

Skriv en tekststreng til en fil – opprett filen hvis den ikke finnes, og overskriv den hvis den finnes:

<?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";
}

Legge til med FILE_APPEND

Legg til innhold på slutten av en eksisterende fil med flagget 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
);

Skrivemoduser for fopen

Åpningsmodusene for fopen bestemmer hvordan filen åpnes:

  • 'w' – skriv, tøm filen til lengde null eller opprett den
  • 'a' – skriv, legg til innhold, og opprett filen hvis den ikke finnes
  • 'x' – skriv, og mislykkes hvis filen allerede finnes
  • 'r+' – les og skriv fra starten, filen må finnes

fopen + fwrite

Strømbasert skriving for presis kontroll:

<?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';

Skrive CSV-filer

Bruk fputcsv() til å skrive CSV-linjer med riktig format:

<?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);

Skrive JSON-filer

Serialiser 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';

Atomiske filskrivinger

Skriv til en midlertidig fil, og gi den deretter nytt navn for atomiske (krasjsikre) oppdateringer:

<?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';

Tillatelser og eierskap

Angi filtillatelser etter opprettelsen 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

Opprett midlertidige filer på en trygg måte 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

Kopiere og flytte filer

Kopier og gi filer nytt navn eller flytt dem med innebygde funksjoner:

<?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';
}

Hurtigsjekk

Hvilket flagg sender du til file_put_contents() for å legge til innhold på slutten av en fil i stedet for å overskrive den?

Oppsummering: Skrive filer

Det viktigste om filskriving:

  • file_put_contents() – den enkleste måten å skrive eller overskrive på
  • Flagget FILE_APPEND for å legge til innhold
  • fopen('a', ...) + fwrite() for strømbasert skriving
  • fputcsv() for CSV-utdata
  • Atomiske skrivinger: skriv til en midlertidig fil + rename()
  • chmod() for å angi tillatelser etter opprettelsen
Gratis å komme i gang

Lær deg PHP med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
49
Leksjoner
195

Ofte stilte spørsmål

Er leksjonen «Skrive til og legge til i filer» gratis?

Ja – hele teksten i «Skrive til og legge til i filer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av PHP Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i PHP Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Skrive til og legge til i filer»?

Skriv data til filer med file_put_contents og FILE_APPEND. Du øver på PHP Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med PHP Academy?

Ingen tidligere erfaring er nødvendig. PHP Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Skrive til og legge til i filer»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne PHP Academy-leksjonen?

Ja. Alle PHP Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Lese filer med PHP
  2. Skrive til og legge til i filer
  3. Arbeide med kataloger
  4. Håndtere filopplastinger
← Tilbake til PHP Academy