Partitionen oder Laufwerke auslesen

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

  • Partitionen oder Laufwerke auslesen

    Hallo,

    gibt es ne möglichkeit mit PHP Laufwerke auszulesen. A:, C:, D: etc oder die Partitionen?

    Bin gerade dabei eine Art Explorer (Total Commander) mit PHP zu schreiben. Soll auch nur auf Windows Systemen funktionieren.

    Bye
    Heinzelmännchen

  • #2
    auf dem pc auf dem php installiert is un dder webserver läuft: prinzipiell ja

    auf meinem pc, der ich deine seite ansurfe: nein
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Jipp, soll in dem Fall nur auf meinem PC sein.

      Da dies im Prinzip gehen soll, ist nur die Frage wie in etwa?

      bye,
      Heinzelmännchen

      Kommentar


      • #4
        du könntest dir ne eigene bibliothek abfragen und dir von windows sagen lassen, welche laufwerke es gibt und die dann einlesen

        oder du machst dir ne schleife von ord('A') bis ord('Z') und probierst dein glück, frag mich da aber nicht, was passiert, wenn es laufwerk H nicht gibt oder in laufwerk A keine diskette/laufwerk E keine cd liegt
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          du könntest dir ne eigene bibliothek abfragen und dir von windows sagen lassen, welche laufwerke es gibt und die dann einlesen

          oder du machst dir ne schleife von ord('A') bis ord('Z') und probierst dein glück, frag mich da aber nicht, was passiert, wenn es laufwerk H nicht gibt oder in laufwerk A keine diskette/laufwerk E keine cd liegt
          Wieso ord('A') bis ord('Z') ? Ja gut, das Laufwerk von A-Z vergeben werden ist mir schon klar. Doch wieso ord()?

          Wie kann ich die Abfrage denn machen? Bibliotheken?! Weiß gar nicht wie ich dies mit PHP Ansprechen kann. Gibt es irgendwo Beispiele oder steht was in der Manual dazu? Habe nix gefunden. Hätte ja mal auf getDrive() getippt, doch PHP ist ja eigentlich dafür gar nicht ausgelegt. (nehme ich mal an)

          bye
          Heinzelmännchen

          Kommentar


          • #6
            Habe es jetzt erst einmal wie folgt gelöst:
            PHP-Code:
            function getDrives() {
                for( 
            $i ord('A') ; $i <= ord('Z') ; $i++ ) {
                    if ( 
            is_dirchr($i) . ':\\' ) ) {
                        
            $arrDrives[] = chr($i) ;
                    }
                }
                
                return 
            $arrDrives ;

            Diskettenlaufwerk und CD-ROM Laufwerke werden miterkannt. Jedoch die Netzwerk Verknüpften Laufwerke nicht.

            Bye,
            Heinzelmännchen

            Kommentar


            • #7
              Und wie kannman jetzt die Laufwerke durchsuchen?
              Mit chdir kann ich zwar zum Laufwerk wechseln aber da funzt nicht opendir weiter

              Bitte hilft

              Kommentar


              • #8
                was funktioniert nicht?

                glob() angeschaut?

                Kommentar


                • #9
                  Jedoch die Netzwerk Verknüpften Laufwerke nicht.
                  Was ja auch relativ logisch ist!!
                  Weil:
                  Unter win läuft der Apache(PHP) meist unter dem Benutzerkonto "system". Und "system" darf normalerweise nicht auf Netzwerkressourcen zugreifen!
                  (und das ist auch gut so)
                  Wir werden alle sterben

                  Kommentar


                  • #10
                    opnedir funzt nicht wenn ich in ein anderes Laufwerk wechsele.
                    Z.B:
                    PHP-Code:
                    $laufwerk="I:/";
                    if(
                    chdir($laufwerk))echo "Laufwerk $laufwerk :<br>";
                    $laufwerk_resource=opendir(".");
                    while(
                    $file=readdir($laufwerk_resource)){
                        echo 
                    "$file <br>";

                    Ausgabe
                    Laufwerk I:/
                    und dann bekomme ich Fehlermeldung, Invalid Argument für opendir()

                    Ich versuch's aber noch mit glob().

                    Kommentar


                    • #11
                      Nein, mit glob() geht auf nicht. Ich weiß es nicht wieso.
                      Hat jemand eine Lösung???

                      Kommentar


                      • #12
                        Hinweis von combie berücksichtigt?
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Hinweis von combie berücksichtigt?
                          Ja, hab ich.

                          Es handelt sich nur um lokale Laufwerke (Partitionen).

                          Merkwürdig: wenn ich nach dem chdir() glob(".") ausführe, dann greift er auf Laufwerk A. Weil beim Ausführen leuchtet das LED von dem Laufwerk A.
                          Und das ist egal welche Buchstabe ich für chdir() nehme.
                          Ich hab sogar in einer Schleife versucht:

                          PHP-Code:
                          $ordner=".";
                              for( 
                          $i ord('A') ; $i <= ord('Z') ; $i++ ) {
                                  if (
                          is_dirchr($i) . ':' ) ) {
                                      if(
                          chdir(chr($i)) ){
                                           echo 
                          chr($i)."<br>";
                                           
                          glob($ordner);
                                      }
                                  }
                              } 
                          und trotzdem leuchtet LED von Laufwerk A! Obwohl es werden alle meine Laufwerkbuchstaben richtig ausgegeben!

                          Kommentar


                          • #14
                            versuch mal
                            PHP-Code:
                            echo getcwd() . "\n";

                            chdir('d:\\\\\\\\'); # hier ist ein slash zu viel, aber ich komme mit dem forum nicht zurecht.
                            echo getcwd() . "\n";

                            print_r(glob('*')); 
                            was kommt raus?
                            Zuletzt geändert von penizillin; 25.01.2007, 11:06.

                            Kommentar


                            • #15
                              Ist doch völlig wurscht, ob Backslashes, oder nicht...
                              das repariert PHP für uns..
                              PHP-Code:
                               for( $i ord('A') ; $i <= ord('Z') ; $i++ )
                              {
                                
                              $lw chr($i).':';
                                if (
                              is_dir($lw))
                                {
                                    echo 
                              '<h3>Laufwerk: '.$lw.'<h3>';
                                    
                              print_r(glob($lw.'/*'));
                                    echo 
                              '<br>';
                                }

                              Ausserdem halte ich es SO, für recht unsauber gelöst!!
                              Wenn mich nicht alles täuscht(und es täuscht mich bestimmt nicht), bietet die Win API die Möglichkeit Alle Laufwerke zu beauskunften, OHNE sie erst lesen zu müssen. Zusätzlich meldet sie uns noch. ob es ein CD-ROM, Festplatte, USB-Stick oder was auch immer ist..

                              Unter PHP ist die API mit Hilfe der (wie sollte es anders sein) php_w32api.dll erreichbar...
                              Wir werden alle sterben

                              Kommentar

                              Lädt...
                              X