Anzeige:
Ergebnis 1 bis 5 von 5

Thema: datei auf server löschen

  1. #1
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215

    datei auf server löschen

    Hi,

    habe leider schon wieder eine frage...
    Ich will über php eine datei auf dem ftp löschen.
    habe bei www.php.net diesen tag gefunden: "ftp_delete(int ftp_stream, string path)".
    "string path" ist die datei, aber was ist "int ftp_stream"?

    Ich lasse mir über dieses script einen ordnerinhalt ausgeben:
    PHP-Code:
    $verz=opendir ('.');
    while (
    $file readdir ($verz)) {
    if(
    $file != "." && $file != "..") {
    $typshow filetype($file);
    $ft str_replace("."""strstr($file,"."));
    if (
    $typshow == "dir" and $file != "icons"){
    if(
    $typshow == "dir") {
    echo 
    "<td class=\"icon\"><img src=\"icons/dir.gif\" border=\"0\" align=\"center\"></td>";
    }
    else {
    echo 
    "<td class=\"icon\"><img src=\"icons/$ft.gif\" border=\"0\" align=\"center\"></td>";
    }
    echo 
    "<td class=\"link\" colspan=\"2\"><a class=\"file\" href=\"?test=$file\">$file</a><br></td></tr><tr>";
    $file2 = @$_REQUEST['test'];
    if (!empty(
    $file2) and $file2 == $file){
    echo 
    "\t<ul>\r\n";
    if (
    $handle2 = @opendir($file2)) {
    while (
    false != ($file1 readdir($handle2))) {
    if (
    $file1 != "." && $file1 != "..") {
    $typshow1 filetype($file2.'/'.$file1);
    $ft1 str_replace("."""strstr($file1,"."));
    if (
    $ft != "PHP"){
    if(
    $typshow1 == "dir") {
    echo 
    "<td class=\"icon\"><td class=\"icon\"><img src=\"icons/dir.gif\" border=\"0\" align=\"center\"></td>";
    }
    else {
    echo 
    "<td class=\"icon\"><td class=\"icon\"><img src=\"icons/$ft1.gif\" border=\"0\" align=\"center\"></td>";
    }
    echo 
    "<td class=\"link\"><a class=\"file\" href=\"$file2/$file1\">$file1</a><br></td></tr><tr>\r\n";
    }
    }
    }
    closedir($handle2);
    }
    echo 
    "\t\r\n";
    }
    }
    }
    }
    closedir($verz); 
    das sieht dann in etwa so aus wie bei apache, bvloß mit dem jeweiligen bild davor, also für ne *.txt ein zettel...
    nun wil ich hinter jede datei (und ordner) einen link setzen, der diese dann döscht. geht das?

    Gruß
    Maik

  2. #2
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    Willst du auf dem selben Server, auf dem auch das PHP-Script läuft, eine Datei löschen? So sieht das in deinem (unübersichtlichen) Beispiel nämlich eher aus...

    Wenn ja: Benutz unlink().

  3. #3
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215
    ehm, ja. ich will datein, die mit diesem script angezeigt werden löschen.
    das bsp ist bloß dafür da, den gesamten ordnerinhalt auszugeben, wo das script drin ist.

  4. #4
    Registrierter Benutzer Avatar von ClausVB
    Registriert seit
    05.08.2005
    Ort
    NRW - Deutschland
    Beiträge
    106

    Arrow 2 Code-Beispiele

    Zitat Zitat von maik15
    das bsp ist bloß dafür da, den gesamten ordnerinhalt auszugeben, wo das script drin ist.
    Das geht glaube ich einfacher.

    1. Variante: Verzeichnisse und Unterverzeichnisse (Rekursion)
    PHP-Code:
    function verzeichnisse_und_dateien_auslesen($verzeichnis)
    {
        global 
    $gVerzeichnisse$gDateien;

        
    $verzeichnis_handle opendir($verzeichnis);

        while(
    $datei readdir($verzeichnis_handle))
        {
            if (
    $datei <> '.' and $datei <> '..')
            {
                if (
    is_dir("$verzeichnis/$datei"))
                {
                    
    array_push($gVerzeichnisse, array('verzeichnis' => "$verzeichnis/$datei/"));
                    
    verzeichnisse_und_dateien_auslesen("$verzeichnis/$datei"); 
                }
                else
                {
                    
    array_push($gDateien, array('datei' => "$verzeichnis/$datei"));
                }
            }
        }

        
    closedir($verzeichnis_handle);

    Lass Dich von dem Befehl "array_push" nicht stören. Den brauche ich nur für vlibTemplate (um PHP und HTML Code zu trennen) zur Ausgabe. Das wirst Du nicht brauchen.


    2. Variante: Nur ein Verzeichnis auslesen, die Datei ausgeben und löschen:
    PHP-Code:
    foreach (glob("*.jpg") as $filename) {
       echo 
    "$filename size " filesize($filename) . "\n";
       
    unlink($filename);

    Für das reine Auslesen reicht glob und wie das oben aufgeführt Beispiel von php.net zeigt, ist das löschen ebenfalls einfach.

    Gruß
    Claus

  5. #5
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215
    OK, danke!

    Maik

Lesezeichen

Berechtigungen

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