tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
628
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Tob
    Tob Tob ist offline Mitglied Platin
    Registriert seit
    Apr 2001
    Ort
    Großraum Deutschland ;-)
    Beiträge
    636
    Hi leute,
    ich habe ein Script geschrieben, das einen Ordner (und seine Unterordner) nach der Datei durchsuchen soll, die zuletzt geändert wurde.
    Das problem ist nun, das sich das script nur eine Ebene weiter vor kämpft.
    Bespiel: Ausgangsordner ist "c:/apache/htdocs/pfadihpserver" dann kommt es zwar nach "c:/apache/htdocs/pfadihpserver/admin" aber nicht mehr nach "c:/apache/htdocs/pfadihpserver/admin/feilchen" irgendwie scheint es daran zu liegen, dass er den ordner feilchen nicht als ordner betrachten sonder als datei... und ich hab keine Ahnung warum...
    Hier ist mal das Script:
    PHP-Code:
    <?
    $var1
    [zeit]=0;
    $dir "c:/apache/htdocs/pfadihpserver";
    $lastModification lastmodification($dir);

    echo 
    $lastModification[zeit];
    echo 
    $lastModification[datei];

    function 
    lastmodification($verzeichniss){
        
    $dir opendir($verzeichniss);
             while (
    $datei readdir($dir)){
                 if(
    is_dir($datei)){
                     if(
    $datei != "." && $datei != ".."){
                        
    $datei $verzeichniss."/".$datei."";
                        echo 
    "<b>".$datei.":</b><br>";
                       
    lastmodification($datei);
                     }
                 }
                 else{
                      echo 
    "&nbsp;&nbsp;&nbsp;-".$datei."<br>";
                      
    $stamp filemtime($datei);
                      if (
    $stamp $var1[zeit]){
                          
    $var1[zeit] = $stamp;
                          
    $var1[datei] = $datei;
                      }
                 }
             }
             return 
    $var1;
             }
    ?>
    tob
     

  2. #2
    gecko Tutorials.de Gastzugang
    das problem liegt in deinem is_dir:

    PHP-Code:
    if(is_dir($datei)){
                     if(
    $datei != "." && $datei != ".."){
                        
    $datei $verzeichniss."/".$datei."";
                        echo 
    "<b>".$datei.":</b><br>";
                       
    lastmodification($datei);
                     }
                 } 
    nur, wenn das verzeichniss . oder .. heisst machst du einen rekursiven aufruf, du willst den aber bei jedem verzeichniss haben!
     

  3. #3
    Avatar von Tob
    Tob Tob ist offline Mitglied Platin
    Registriert seit
    Apr 2001
    Ort
    Großraum Deutschland ;-)
    Beiträge
    636
    hä,
    ich hab da doch extra !=

    if($datei*!=*"."*&&*$datei*!=*"..")

    der muss die beiden verzeichnisse weglassen sonst dreht sich das script logischerweise im Kreis...

    tob
     

  4. #4
    gecko Tutorials.de Gastzugang
    aehm, ja richtig, sorry ... hatte das nur schnell ueberflogen ... schau mir das nachher nochmal an
     

  5. #5
    gecko Tutorials.de Gastzugang
    bin gerade zu faul deine funktion ordentlich durchzugucken, auf jeden fall kann er bei dir nicht tiefer "crawlen" weil du ihm nie den kompletten pfad uebergibst, das script starten ja aus deinem "crawl-root" und den kompletten pfad von dort aus musst du immer mit uebergeben, wenn du tiefer gehen willst.

    nimm sonst meine version, funktioniert perfekt

    PHP-Code:
    function crawlDir($DIRSRC)
    {
        
    $DIR dir($DIRSRC); 
        while(
    $FILE $DIR->read())
        { 
            if (
    is_file($DIRSRC.$FILE))
            {
                
    //perform file check blahblah ...
                
    echo $DIRSRC.$FILE."<br>";
            }
            elseif (
    is_dir($DIRSRC.$FILE) && $FILE!="." && $FILE!="..")
            {
                
    crawlDir($DIRSRC.$FILE."/");
            }
        } 
        
    $DIR->close();
    return 
    true;
    }

    crawlDir("./"); 
    dort kannst du dann recht schnell deinen timestamp-check einbauen.
     

  6. #6
    Avatar von Tob
    Tob Tob ist offline Mitglied Platin
    Registriert seit
    Apr 2001
    Ort
    Großraum Deutschland ;-)
    Beiträge
    636
    ich verstehe nicht was du meinst. ich übergebe ihm doch sogar den absoluten pfad:
    PHP-Code:
    <?
    $var1
    [zeit]=0;
    $dir*=*"c:/apache/htdocs/pfadihpserver"//<< hier der ausgangspfad
    $lastModification*=*lastmodification($dir);

    echo*$lastModification[zeit];
    echo*$lastModification[datei];

    function*lastmodification($verzeichniss){
    ****$dir*=*opendir($verzeichniss);
    *********while*($datei*=*readdir($dir)){
    *************if(is_dir($datei)){
    *****************if($datei*!=*"."*&&*$datei*!=*".."){
    ********************$datei*=*$verzeichniss."/".$datei.""// << und hier wird der nächst höhere ordner angehängt.
    ********************echo*"<b>".$datei.":</b><br>";
    *******************lastmodification($datei); // und an die Funktion übergeben
    *****************}
    *************}
    *************else{
    ******************echo*"&nbsp;&nbsp;&nbsp;-".$datei."<br>";
    ******************$stamp*=*filemtime($datei);
    ******************if*($stamp*>*$var1[zeit]){
    **********************$var1[zeit]*=*$stamp;
    **********************$var1[datei]*=*$datei;
    ******************}
    *************}
    *********}
    *********return*$var1;
    *********}
    ?>
    aber ich schau mir deine Funktion mal an... vieleicht fällt dir ja auch noch was zu meiner ein ...

    tob
     

  7. #7
    gecko Tutorials.de Gastzugang
    das klappt aber bei dir nicht so ganz, lass dir doch am besten mal alles mit ausgeben oder probiers mal mit einem / am ende:

    PHP-Code:
    $datei $verzeichniss."/".$datei."/"
     

  8. #8
    Avatar von Tob
    Tob Tob ist offline Mitglied Platin
    Registriert seit
    Apr 2001
    Ort
    Großraum Deutschland ;-)
    Beiträge
    636
    so mein script ****t jetzt *freu*
    aber leider bekomme ich immer wenn ich im obersten verzeichniss beginne zu scannen die Fehlermeldung: OpenDir: Permission denied (errno 13) in /www/htdocs/pfadfide/lastmodify.php on line 12

    was nun ?

    tob
     

  9. #9
    gecko Tutorials.de Gastzugang
    dann hat php auch keinen zugriff auf die daten im obersten verzeichniss ?
     

  10. #10
    Avatar von Tob
    Tob Tob ist offline Mitglied Platin
    Registriert seit
    Apr 2001
    Ort
    Großraum Deutschland ;-)
    Beiträge
    636
    soviel englisch kann ich auch noch....
    aber was kann ich dagegen tun ?

    tob
     

  11. #11
    gecko Tutorials.de Gastzugang
    php die entsprechenden rechte geben

    aehm, du arbeitest unter windows richtig ? dann wundert mich das gerade ein bisschen, es sei denn du bist unter NT.
     

  12. #12
    Avatar von Tob
    Tob Tob ist offline Mitglied Platin
    Registriert seit
    Apr 2001
    Ort
    Großraum Deutschland ;-)
    Beiträge
    636
    zuhause schon, aber der Webserver im Netz läuft auf nem Linuxsystem, und eben dort geht es nicht. Und ich weiss leider werder wo noch was ich einstellen muss damit php die korrekten Rechte bekommt ...

    tob
     

  13. #13
    gecko Tutorials.de Gastzugang
    chmod ******
    setz die entsprechenden rechte

    chmod 775 verzeichniss per ftp oder system()
     

  14. #14
    Avatar von Tob
    Tob Tob ist offline Mitglied Platin
    Registriert seit
    Apr 2001
    Ort
    Großraum Deutschland ;-)
    Beiträge
    636
    mit meinem ftp clienten komme ich ja nicht in ein höheres Verzeichnis als /www/htdocs/pfadfide/ und kann somit auch nicht chmod ändern.
    das ganze über php zu lösen kann theoretisch nicht funktionieren da php ja kein zugriff auf das verzeichnis hat(praktisch ****t des auch nicht ich habs ausprobiert...)

    sonst noch irgendwelche vorschläge ?

    tob
     

  15. #15
    gecko Tutorials.de Gastzugang
    hmmm... dann sollst du da auch nicht dran...

    wenn du von deinem provider aus keinerlei zugriff auf dieses verzeichniss hast, hat das sicherlich seinen sinn
     

Ähnliche Themen

  1. Ebay funktioniert fast nie
    Von Frankyboy708 im Forum Internet, DSL & Flatrate
    Antworten: 31
    Letzter Beitrag: 07.01.12, 23:33
  2. Antworten: 2
    Letzter Beitrag: 30.12.08, 22:33
  3. Script funktioniert nicht im FF im IE & Opera schon
    Von MrFreeze im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 31.01.08, 13:32
  4. fast schon peinliches thema
    Von BOBTHEPAINTER im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 21.11.07, 17:02
  5. Antworten: 4
    Letzter Beitrag: 28.08.05, 18:41