[PHP] DIR herausbekommen und löschen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Smokers, 11. September 2007 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 11. September 2007
    DIR herausbekommen und löschen

    Also ich suche eine Funktion in PHP, die er mir erlaubt den Pfad bzw den Ordnernamen herauszufinden indem das aktuell ausgeführte Script liegt.

    Genaueres :

    Die php datei löscht erst alle dateien im Ordner selbst ( im eigenen Ordner) , dann löscht es sich selbst( ja das geht ^^ ) und dann soll es auch noch den Ordner entfernen.

    Dazu brauche ich das , wäre nett wenn jemand eine Idee hat.
    Danke.

    S
     
  2. 12. September 2007
    AW: DIR herausbekommen und löschen

    Also wenn ich mal ausprobiere :
    PHP:
    <? php
    echo  $_server [ 'document_root' ];
    ?>
    bekomme ich GARKEINE Antwort... nichts ..
    und nu?


    \\\
    Genauso bei :
    PHP:
    <? php
    echo  $_server [ 'SCRIPT_FILENAME' ] ;

    ?>
     
  3. 12. September 2007
    AW: DIR herausbekommen und löschen

    globale variablen sind groß: $_SERVER
    die keys darin ebenso: $_SERVER['DOCUMENT_ROOT']

    dennoch würde das nicht das gewollte ergebnis liefern, deshalb:

    PHP:
    <? php
            $dir 
    explode ( '/' $_SERVER [ 'PHP_SELF' ]);
            
    $dirname  $dir [ 1 ];
            unset(
    $dir );
            
    $op  opendir ( './' );
            while(
    false  != ( $file  readdir ( $op ))) {
                if(
    $file  !=  '.'  &&  $file  !=  '..' ) {
                    if(
    is_dir ( $file )) @ rmdir ( './' . $file );
                    else @
    unlink ( './' . $file );
                }
            }
            @
    rmdir ( $_SERVER [ 'DOCUMENT_ROOT' ]. '/' . $dirname );
    ?>
     
  4. 12. September 2007
    AW: DIR herausbekommen und löschen

    Mhh okay, ich glaub ich hab die Frage dämlich gestellt....
    das Script von dir ist gut...

    allerdings kann ich es glaube ich für meinen zweck nicht nutzen ^^
    mal nen beispiel .....:

    die datei :
    "c:\ordner1\ordner2\test.php"
    soll:

    1. sich selbst löschen
    2. den Ordner:"ordner2".

    Mit dem Script bekomme ich zwar den Ordner "ordner2" als Ergebnis und es löscht auch die datei test.php , allerdings kann ich damit nicht wirklich erreichen das der Ordner "ordner2" gelöscht wird.


    Danke Murdoc und dem anderen der nichtmehr da steht.... schonmal ^^
     
  5. 12. September 2007
    AW: DIR herausbekommen und löschen

    dafür brauchst du eine rekursive funktion, da unter linux erst alle dateien aus den unterordnern enternt werden müssen
    PHP:
    function  delete_folder ( $folder ) {
      
    $checkDir  opendir ( "./" . $folder . "/" );
      while(
    $file  readdir ( $checkDir )){
        if(
    $file  !=  "."  &&  $file  !=  ".." ){
          if(
    is_dir ( $folder  "/"  $file )){
            echo 
    "Deleting Subfolder (" . $folder  "/"  $file . ")<br />" ;
            
    delete_folder ( $folder  "/"  $file );
          }
          else {
            echo 
    "Deleting file (" . $folder  "/"  $file . ")<br />" ;
            
    unlink ( $folder  "/"  $file );
          }
        }
      }
      
    closedir ( $checkDir );
      
    rmdir  ( "./"  $folder  "/" );
    }
    delete_folder ( dirname ( __FILE__ ));
    ich hoffe das geht, sowas teste ich lieber nich ^^
     
  6. 12. September 2007
    AW: DIR herausbekommen und löschen

    Hab hier auch noch was kleines auf PHP5

    PHP:
    <? php
        
    //deleteDir.php

        /**
         * This function saves the filenames of a dir to delete every file in the dir and then the dir itself.
         *
         * @param string $sPath2Dir -> path to the dir for deletion, the last path seperator will be added automatically
         */
        
    function  deleteDir ( $sPath2Dir ) {
            
    //checking if the path - seperator is the last sign
            
    if ((( $sLastChar  substr ( $sPath2Dir , - 1 1 )) !==  '/' ) && ( $sLastChar  !==  '\\' )) {
                
    $sPath2Dir  .=  '/' ;
            }
    //end - checking if the path - seperator is the last sign

            
    $aFiles  scandir ( $sPath2Dir ); //saving the name of every file for deletion and preventing redundancy

            
    foreach ( $aFiles  as  $sFile ) { //foreach-loop for every file
    @             unlink ( $sPath2Dir . $sFile ); //prevent the warning for delete the path changings
            
    } //end - foreach-loop for every file
    @         rmdir ( $sPath2Dir );
        }
    //end - function deleteDir($sPath2Dir)
    ?>

    Herausfinden welcher Ordner natürlich wie es Schmitz und die anderen bereits sagten/andeuteten. Solltest du aber den Fall haben, dass du eine Vererbungshierarchie entwickelt hast, und willst irgendwie feststellen in welchen Ordner die Superklasse ist, musst du mit dem Scope der Klassen spielen. Auf php.net zu get_parent_class und so findest du dazu ein paar Workarounds solltest du denn Fall mal haben.
     
  7. 12. September 2007
    AW: DIR herausbekommen und löschen

    Mein Gott ich bin Anfänger...damned...


    also
    zurzeit sieht es so aus :

    PHP:
    // Ich generiere aus einer PHP datei eine Weitere.... 
    $del_datei = fopen("uploaded/". $randomdir . "/" . $randomdellink , w);
    ####delinhalt
    $del_dateiinhalt = 
    '<?php  echo  "<body style=\"background-color: black;\"><font size=\"5\" color=\"white\">
    <center>Datei wurde gelöscht</center></font></body>"
    ;   
    unlink ( "index.html" ); 
    unlink ( "' .  $randomimagename  . '" ); 
    unlink ( "' .  $randomdellink  . '" ) ; 


    ?>';


    ####delinhalt ende

    fwrite($del_datei, $del_dateiinhalt) ;
    fclose($del_datei);

    unlink("' . $randomimagename . '"); --> Ein ein Bild das einen Randomnamen bekommen hatte
    unlink("' . $randomdellink . '") ; --> der löschlink der auch random ist .....


    _____
    Status :
    Der Ordner , wo die Dateien drinne sind (/waren), ist leer....
    Es fehlt wirklich nurnoch diese eine Funktion das der Ordner indem das aktuelle script liegt gelöscht wird.

    Das PHP5 Ding kann ich anscheinend nicht nutzen , da der Hoster auch nur 4 hat....
    so also mal schaun ob ich da irgendwie was von euch reinbekomme.... aber ehrlich gesagt ....

    wie gesagt anfänger ^^°°
     
  8. 13. September 2007
    AW: DIR herausbekommen und löschen

    nimm doch meine funktion ^^
    genau so wie sie da steht mit <?php am anfang und ?> am ende
    das schreibst du so wie dus momentan machst in eine datei
    allerdings mit \\"
    mein script sollte theoretisch genau das machen was du willst
    es löscht den ordner in dem das script liegt und sämtliche unterverzeichnisse inklusive dateien
     
  9. 13. September 2007
    AW: DIR herausbekommen und löschen

    weil ich dann folgenden Fehler bekomme :

    Code:
    [B]Warning[/B]: opendir(.//usr/export/www/vhosts/funnetwork/hosting/XXXXXXX/upload/version4/uploaded/1189714253914522581087/) [[URL="http://meis0r.me.funpic.de/upload/version4/uploaded/1189714253914522581087/function.opendir"]function.opendir[/URL]]: failed to open dir: No such file or directory in [B]/usr/export/www/vhosts/funnetwork/hosting/XXXXXXX/upload/version4/uploaded/1189714253914522581087/2249.php[/B] on line [B]5[/B]
    
    [B]Warning[/B]: readdir(): supplied argument is not a valid Directory resource in [B]/usr/export/www/vhosts/funnetwork/hosting/[/B][B]XXXXXXX[/B][B]/upload/version4/uploaded/1189714253914522581087/2249.php[/B] on line [B]6[/B]
    
    [B]Warning[/B]: closedir(): supplied argument is not a valid Directory resource in [B]/usr/export/www/vhosts/funnetwork/hosting/[/B][B]XXXXXXX[/B][B]/upload/version4/uploaded/1189714253914522581087/2249.php[/B] on line [B]18[/B]
    
    [B]Warning[/B]: rmdir(.//usr/export/www/vhosts/funnetwork/hosting/XXXXXXX/upload/version4/uploaded/1189714253914522581087/) [[URL="http://meis0r.me.funpic.de/upload/version4/uploaded/1189714253914522581087/function.rmdir"]function.rmdir[/URL]]: No such file or directory in [B]/usr/export/www/vhosts/funnetwork/hosting/[/B][B]XXXXXXX[/B][B]/upload/version4/uploaded/1189714253914[/B]
    


    Während der Inhalt so aussieht:
    PHP:

    $del_dateiinhalt = 
    '<?php  echo  "<body style=\"background-color: black;\"><font size=\"5\" color=\"white\">
    <center>Datei wurde gelöscht</center></font></body>"
    ;   

    function 
    delete_folder ( $folder ) {
      
    $checkDir  opendir ( "./" . $folder . "/" );
      while(
    $file  readdir ( $checkDir )){
        if(
    $file  !=  "."  &&  $file  !=  ".." ){
          if(
    is_dir ( $folder  "/"  $file )){
            echo 
    "Deleting Subfolder (" . $folder  "/"  $file . ")<br />" ;
            
    delete_folder ( $folder  "/"  $file );
          }
          else {
            echo 
    "Deleting file (" . $folder  "/"  $file . ")<br />" ;
            
    unlink ( $folder  "/"  $file );
          }
        }
      }
      
    closedir ( $checkDir );
      
    rmdir  ( "./"  $folder  "/" );
    }
    delete_folder ( dirname ( __FILE__ )); 

    ?>';


    Die " kann ich ja lassen da sie von einem ' umgeben sind....
     
  10. 14. September 2007
    AW: DIR herausbekommen und löschen

    oh, sorry, die funktion war mal für relative pfade ausgelegt
    PHP:
    $del_dateiinhalt =
    '<?php  echo  "<body style=\"background-color: black;\"><font size=\"5\" color=\"white\">
    <center>Datei wurde gelöscht</center></font></body>"
    ;   

    function 
    delete_folder ( $folder = "" ) {
      if (
    $folder == "" )
        
    $folder  dirname ( __FILE__ );
      if (
    substr ( $folder , - 1 ) ==  "/" )
        
    $folder  substr ( $folder 0 , - 1 );
      
    $checkDir  opendir ( $folder );
      while(
    $file  readdir ( $checkDir )){
        if(
    $file  !=  "."  &&  $file  !=  ".." ){
          if(
    is_dir ( $folder  "/"  $file )){
            
    delete_folder ( $folder  "/"  $file );
          }
          else
          {
            @
    unlink ( $folder  "/"  $file );
          }
        }
      }
      
    closedir ( $checkDir );
      @
    rmdir  ( $folder );
    }
    delete_folder ();
    ?>';
    ich hoffe das geht jetzt ^^ habs aber diesmal getestet
    unter windows war es allerdings nicht möglich den ordner selbst auch zu löschen
     
  11. 14. September 2007
    AW: DIR herausbekommen und löschen

    ahhh
    es hat wunderbar geklappt....
    wunderbar, ^^ danke schmitz und alle anderen =)

    bekommt alle ne Bewertung :B

    THX ^^

    close
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.