Verstehe den Code nicht so recht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Verstehe den Code nicht so recht

    Hab im Web folgende Zeilen Code gefunden kann damit aber nichts anfangen. Was machen der oder die da?

    PHP-Code:
    function analysedir($dirline)
    {
        global 
    $systyp,$ftp_server,$stop;

        if(
    ereg("([-dl])[rwxst-]{9}",substr($dirline,0,10))) {
            
    $systyp "UNIX";
        }

        if(
    substr($dirline,0,5) == "total") {
            
    $dirinfo[0] = -1;
        } elseif(
    $systyp=="Windows_NT") {
            if(
    ereg("[-0-9]+ *[0-9:]+[PA]?M? +<DIR> {10}(.*)",$dirline,$regs)) {
                
    $dirinfo[0] = 1;
                
    $dirinfo[1] = 0;
                
    $dirinfo[2] = $regs[1];
            } elseif(
    ereg("[-0-9]+ *[0-9:]+[PA]?M? +([0-9]+) (.*)",$dirline,$regs)) {
                
    $dirinfo[0] = 0;
                
    $dirinfo[1] = $regs[1];
                
    $dirinfo[2] = $regs[2];
            }
        } elseif(
    $systyp=="UNIX") {
            if(
    ereg("([-d])[rwxst-]{9}.* ([0-9]*) [a-zA-Z]+ [0-9: ]*[0-9] (.+)",$dirline,$regs)) {
                if(
    $regs[1]=="d")    $dirinfo[0] = 1;
                
    $dirinfo[1] = $regs[2];
                
    $dirinfo[2] = $regs[3];
            }
        }

        if((
    $dirinfo[2]==".")||($dirinfo[2]=="..")) $dirinfo[0]=0;

        
    // array -> 0 = switch, directory or not
        // array -> 1 = filesize (if dir =0)
        // array -> 2 = filename or dirname

        
    return $dirinfo;

    sowie folgende Bemerkung dazu auf http://www.php.net/manual/de/function.ftp-rawlist.php

    L8 ereg mask (directory?, size, name):

    ereg("([-d])[rwxst-]{9}.* ([0-9]*) [a-zA-Z]+ [0-9: ]*[0-9]
    (.+)",$dirline,$regs);

    I've tried this, and it works fine if the name of the file has not a number in the first letter. for example, if I have a file named "1file.exe", it shows "file.exe"; and if I've a file named "010102.exe" it shows ".exe" only.
    I've improved it by doing this:

    if(ereg("([-d])[rwxst-]{9}.* ([0-9]*) ([a-zA-Z]+[0-9: ]*[0-9]) ([0-9]{2}:[0-9]{2}) (.+)",$dirline,$regs))
    {
    if($regs[1]=="d") $dirinfo[0] = 1;
    $dirinfo[1] = $regs[2];
    $dirinfo[2] = $regs[3];
    $dirinfo[3] = $regs[4];
    $dirinfo[4] = $regs[5];
    }
    $dirinfo[0] => is a directory? (1=yes)
    $dirinfo[1] => file size
    $dirinfo[2] => file date
    $dirinfo[3] => file time
    $dirinfo[4] => file name

    and now works with all filename formats!


    Wofür brauch ich das bei FTP Servern? Was bringt mir die Unterscheidung nach System und was soll dieses ellen lange Suchmuster in der ereg Funktion.

    Das komplette Skript gibt es hier:
    http://home.arcor.de/stefanernst2/Mi...en/einlese.txt
    Könnte jemand mal ein paar Bemerkungen zu dem Code machen was da überhaupt geschieht. Grob kapier ichs ja aber halt net so das ich was damit anfangen könnte bzw nach meinen belieben ändern.


    Mfg Markus
Lädt...
X