[PHP] Jak usunąć plik?

W PHP często generujemy różnego rodzaju pliki, np. pliki logów, czy też różnego rodzaju statystyk. Podobnie jak system operacyjny, na którym pracujesz, PHP pozwala tworzyć i usuwać pliki.

Do usuwania plików z poziomu PHP służy funkcja unlink. Jako argument podajemy ścieżkę do pliku, który ma zostać usunięty. Funkcja zwróci TRUE, jeśli udało się usunąć plik, w przeciwnym razie funkcja zwróci FALSE. Jeśli ścieżka do pliku jest niepoprawna funkcja wygeneruje błąd typu E_WARNING.

Przykładowe użycie

<?php

unlink('/ścieżka/do/pliku/test.html');

Pamiętaj, aby rozważnie używać tej funkcji, ponieważ operacji usunięcia pliku nie można cofnąć.

Komentarze

  1. Takim kodem usuwam wpis w tabeli. Jak dopisać do tego unlink by jednocześnie przy usuwaniu wpisu usuwane było również odpowiadające wpisowi zdjęcie w katalogu?

    include ('connect.php');
    $id=$_GET['id'];
    $sql="DELETE FROM tabela WHERE id='$id'";
    $result=mysql_query($sql);
    if($result){
    echo "ok";
    }
    else {
    echo "ERROR";
    }
    mysql_close();

    OdpowiedzUsuń
  2. Przede wszystkim ten kod nie jest poprawny, ponieważ przy operacji takiej jak DELETE do sprawdzania czy rekord został usunięty używamy funkcji mysql_affected_rows.
    Zatem w powyższym warunku należy wstawić kod:
    mysql_affected_rows() > 0, gdzie mysql_affected_rows zwróci ilość usuniętych wierszy. Jeśli mysql_affected_rows zwróci 0 oznaczać to będzie niepowodzenie w usuwaniu rekordu.

    Wracając do pytania, jeśli zdjęcia w katalogu zapisywane są w formacie id.rozszerzenie wystarczy tylko unlink('ścieżka do katalogu/' . $id . '.rozszerzenie'); oczywiście, jeśli zapytanie DELETE przyniosło efekt.

    Należy pamiętać o ostrożności podczas używania unlink, by nie usunąć poprzez błąd ważnych plików.
    Nie zapominajmy też o filtrowaniu danych.

    OdpowiedzUsuń

Prześlij komentarz

Dzięki za komentarz!

Popular

[HTML] Jak wstawić obrazek?

[C++] Jak obliczyć pole i obwód trapezu?

[PHP] Jak pobrać adres strony?