Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 20
Like Tree5Likes

Thema: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

  1. #1
    Avatar von LikeStar
    LikeStar ist offline Tripel-As
    registriert
    03-07-2014
    Beiträge
    216

    Erledigt

    ERLEDIGT

    Hallo,

    die zuletzt erstellte PHP Seite, welche sich in einem Ordner befindet,
    soll gelöscht werden - Wahrscheinlich wird nach Datum und Uhrzeit geprüft.

    PHP-Code:
    <?php
    $fh 
    fopen('test.html''a');
    fwrite($fh'<h1>Hallo Welt!</h1>');
    fclose($fh);

    unlink('test.html');
    ?>
    Gibt es dafür einen Begriff?
    Geändert von LikeStar (15-02-2015 um 23:11 Uhr)

  2. #2
    gform ist offline Mitglied
    registriert
    04-02-2012
    Beiträge
    46

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    Das tust du doch in deiner letzten Zeile.

  3. #3
    Avatar von LikeStar
    LikeStar ist offline Tripel-As
    registriert
    03-07-2014
    Beiträge
    216

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    Zitat Zitat von gform Beitrag anzeigen
    Das tust du doch in deiner letzten Zeile.
    Hm. Nein nicht wirklich.

    In einem Ordner befinden sich

    beispiel.php
    beispiel(kopie).php
    beispiel(kopie1).php
    beispiel(kopie2).php
    beispiel(kopie3).php
    beispiel(kopie4).php

    Ich möchte, dass die zuletzt erstellte Datei gelöscht wird. Das kriege ich mit
    PHP-Code:
     $myFile "php/";

     
    unlink($myFile); 

    Hin. Allerdings will er unbedingt einen Namen haben. Sonst funktioniert das leider nicht.
    Geändert von LikeStar (11-02-2015 um 02:44 Uhr)

  4. #4
    Sempervivum ist offline Banned
    registriert
    11-12-2012
    Beiträge
    555

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    Du musst zuerst die Dateinamen ermitteln, z. B. mit glob(). Dann über diese iterieren und das Datum des Erstellens mit filectime() ermitteln. Beide Werte, Zeit und Dateiname in ein assoziatives array eintragen mit Zeit als Schlüssel und dann sortieren mit ksort(). Dann findest Du die Datei, die zuletzt erstellt wurde, als letztes Element des Arrays und kannst sie löschen.
    LikeStar likes this.

  5. #5
    Avatar von LikeStar
    LikeStar ist offline Tripel-As
    registriert
    03-07-2014
    Beiträge
    216

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    Zitat Zitat von Sempervivum Beitrag anzeigen
    Du musst zuerst die Dateinamen ermitteln, z. B. mit glob(). Dann über diese iterieren und das Datum des Erstellens mit filectime() ermitteln. Beide Werte, Zeit und Dateiname in ein assoziatives array eintragen mit Zeit als Schlüssel und dann sortieren mit ksort(). Dann findest Du die Datei, die zuletzt erstellt wurde, als letztes Element des Arrays und kannst sie löschen.


    Okay. Danke.

  6. #6
    Sempervivum ist offline Banned
    registriert
    11-12-2012
    Beiträge
    555

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    Inzwischen ist mir eingefallen, dass es noch etwas einfacher geht: Über die Dateinamen iterieren. Dateiname und Zeit merken. Ist die Zeit größer als die gemerkte, Dateiname und Zeit ersetzen.
    Hier findest Du noch mehr Algorithmen:
    http://stackoverflow.com/questions/5...in-a-directory
    Mir gefällt die mit dem Directory-Iterator am besten, weil diese nur einmal iteriert.
    Geändert von Sempervivum (11-02-2015 um 10:33 Uhr)

  7. #7
    Avatar von LikeStar
    LikeStar ist offline Tripel-As
    registriert
    03-07-2014
    Beiträge
    216

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    Zitat Zitat von Sempervivum Beitrag anzeigen
    Inzwischen ist mir eingefallen, dass es noch etwas einfacher geht: Über die Dateinamen iterieren. Dateiname und Zeit merken. Ist die Zeit größer als die gemerkte, Dateiname und Zeit ersetzen.
    Hier findest Du noch mehr Algorithmen:
    php - Get last modified file in a directory - Stack Overflow
    Mir gefällt die mit dem Directory-Iterator am besten, weil diese nur einmal iteriert.
    Danke für diesen Link!

    D.h. er könnte theoretisch per Klick Dateien mit der Endung .php nach einander löschen.
    Also klick für klick.

    Super.

    Edit:

    Habe ein Superscript, welches tatsächlich die zuletzt erstellte Datei anzeigen tut.

    PHP-Code:
    $path "xampp/htdocs/advance/php/";
    $timestamp null;

    $dirname dirname(__FILE__);
    $dir = new DirectoryIterator($dirname);
    foreach (
    $dir as $fileinfo) {
        if (!
    $fileinfo->isDot()) {
            if (
    $fileinfo->getMTime() > $timestamp) {
                
    // current file has been modified more recently
                // than any other file we've checked until now
                
    $path $fileinfo->getFilename();
                
    $timestamp $fileinfo->getMTime();
            }
        }
    }

    var_dump($path); 
    Aber mein $path="xampp/htdocs/advance/php/" wird einfach ignoriert. Stattdessen wird alternativ
    im Ordner in dem sich das PHP Script selbst befindet, gesucht.

    Eine Idee?
    Geändert von LikeStar (11-02-2015 um 18:38 Uhr)

  8. #8
    gform ist offline Mitglied
    registriert
    04-02-2012
    Beiträge
    46

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    PHP-Code:
    $path .= $fileinfo->getFilename(); 

  9. #9
    Sempervivum ist offline Banned
    registriert
    11-12-2012
    Beiträge
    555

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    Den Verzeichnisnamen, in dem gesucht werden soll, weist Du hier zu:
    PHP-Code:
    $dirname dirname(__FILE__); 
    wobei __FILE__ die aktuelle Datei ist. Dein $path hat keine Auswirkung, denn das ist lediglich eine Initialisierung für den gemerkten Dateinamen, die später wieder überschrieben wird. Von dirname(__FILE__) ausgehend musst Du das Verzeichnis, in dem gesucht werden soll, angeben. Man könnte auch einen absoluten Pfad angeben, aber das ist aus Gründen der Portierbarkeit weniger zu empfehlen: Wenn dann dein Skript lokal funktioniert, tut es das auf dem Server wahrscheinlich nicht mehr.
    Geändert von Sempervivum (11-02-2015 um 19:30 Uhr)

  10. #10
    Avatar von LikeStar
    LikeStar ist offline Tripel-As
    registriert
    03-07-2014
    Beiträge
    216

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    Zitat Zitat von Sempervivum Beitrag anzeigen
    Den Verzeichnisnamen, in dem gesucht werden soll, weist Du hier zu:

    wobei __FILE__ die aktuelle Datei ist. Dein $path hat keine Auswirkung, denn das ist lediglich eine Initialisierung für den gemerkten Dateinamen, die später wieder überschrieben wird. Von dirname(__FILE__) ausgehend musst Du das Verzeichnis, in dem gesucht werden soll, angeben. Man könnte auch einen absoluten Pfad angeben, aber das ist aus Gründen der Portierbarkeit weniger zu empfehlen: Wenn dann dein Skript lokal funktioniert, tut es das auf dem Server wahrscheinlich nicht mehr.
    Danke für deine Rückmeldung.

    Der Code wurde angepasst.

    PHP-Code:
    <?php
    $path 
    null;
    $timestamp null;

    $dirname "php/";
    $dir = new DirectoryIterator($dirname);
    foreach (
    $dir as $fileinfo) {
        if (!
    $fileinfo->isDot()) {
            if (
    $fileinfo->getMTime() > $timestamp) {
                
    // current file has been modified more recently
                // than any other file we've checked until now
                
    $path $fileinfo->getFilename();
                
    $timestamp $fileinfo->getMTime();
            }
        }
    }

    var_dump($path);  
    unlink($dir);
    ?>
    Habe unten noch ein unlink($dir); eingebaut. Wenn ich das Script ausführe, findet er zwar in dem richtigen Ordner die zuletzt erstelte Datei

    aber er führt das löschen nicht richtig aus.

    Warning: unlink(index.php): No such file or directory in C:\Program Files (x86)\xampp\htdocs\advance\loeschen.php on line 15

    Warning: unlink(test.php): No such file or directory in C:\Program Files (x86)\xampp\htdocs\advance\loeschen.php on line 15


    Witzigerweise löscht er die index.php Seite aus dem Ordner, in dem das obige Script liegt.


    @gform
    Was wolltest du damit ausdrücken? :-)

  11. #11
    SteelWheel ist offline Haudegen
    registriert
    18-07-2012
    Beiträge
    600

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    Bei der Verwendung von unlink() musst Du zwingend* einen absoluten Pfad hinterlegen (ich lösche bei Bedarf Sitzungsvariablen im privaten Bereich (Verzeichnis) und komme selbst nicht drum herum). Bedenke, dass dies bei Windows anders aussieht als auf Linux (wie umgekehrt)!

    * heißt: Ich habe keine andere Möglichkeit einst gefunden, das bei mir zu lösen.

  12. #12
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.817

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    Zitat Zitat von SteelWheel Beitrag anzeigen
    Bei der Verwendung von unlink() musst Du zwingend* einen absoluten Pfad hinterlegen
    Normal. Ist in Perl auch so.

    Zitat Zitat von SteelWheel Beitrag anzeigen
    Bedenke, dass dies bei Windows anders aussieht als auf Linux (wie umgekehrt)!
    Vorsicht, der Backslash ist ja auch für das Escaping zusändig, wenn dann also zwei Backslashe verwenden.
    Aber bist du sicher, dass man mit PHP auf Windows keine normalen Schrägstriche verwenden kan? In Perl brauche ich keine Backlashes für Pfade auf Windows.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  13. #13
    Sempervivum ist offline Banned
    registriert
    11-12-2012
    Beiträge
    555

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    Bei der Verwendung von unlink() musst Du zwingend* einen absoluten Pfad hinterlegen
    Da sagt das Beispiel #1 hier
    PHP: unlink - Manual
    aber etwas anderes aus?
    @LikeStar: Was gibt dein var_dump denn aus?
    PS: Wie Du den absoluten Pfad ausliest, kannst Du hier nachlesen:
    http://php.net/manual/en/directoryit...etpathname.php
    PPS: Du schreibst: unlink($dir); $dir ist jedoch der Iterator und nicht die gefundene Datei!
    Geändert von Sempervivum (12-02-2015 um 11:07 Uhr)
    LikeStar likes this.

  14. #14
    SteelWheel ist offline Haudegen
    registriert
    18-07-2012
    Beiträge
    600

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    @Sempervivum: Jupp, sagt es auch ... daher war ich auch einst super genervt davon. In meinem Fall half besagter Pfad - done.

    EDIT: Gleiche Seite ... ein Kommentar eines anderen Users zu unlink() auf PHP.net und "ging nicht".
    LikeStar likes this.

  15. #15
    Sempervivum ist offline Banned
    registriert
    11-12-2012
    Beiträge
    555

    AW: Mit unlink die zuletzt erstellte PHP Seite löschen / delete

    Hm, hab's ausprobiert und bei mir funktioniert es einwandfrei:
    PHP-Code:
        $testdatei "text.txt";
        
    unlink($testdatei); 
    Die Datei lag im selben Verzeichnis wie die PHP-Datei.
    LikeStar likes this.

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. zuletzt besuchte seite im frame anzeigen
    Von fleischer im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 18-04-2009, 21:04
  2. Muss ich erstellte Objekte löschen?
    Von gery im Forum Serverseitige Programmierung
    Antworten: 1
    Letzter Beitrag: 04-01-2008, 01:35
  3. Antworten: 2
    Letzter Beitrag: 24-08-2005, 11:00
  4. Antworten: 4
    Letzter Beitrag: 30-03-2005, 19:17
  5. Antworten: 2
    Letzter Beitrag: 06-09-2001, 09:22

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •