PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Problem mit ordner auslesen (https://www.php-resource.de/forum/php-developer-forum/84480-problem-mit-ordner-auslesen.html)

kakktus 04-06-2007 15:25

Problem mit ordner auslesen
 
Hallo,

ich habe einen Webserver im Inranet(Mac osx Server).
Auf diesem lasse ich mit einen php-Script einen Fileserver (Mac osx) Scannen um die Dateinamen etc in eine DB zu schreiben.
Jetzt habe ich aber das Problem, dass mein script nur die oberste
Struktur Scann, also nicht in die Unterordner geht.
Anscheinend funktionier is_dir() nicht. Hat jemand ne ahnung woran das liegen könnte oder was ich anders machen könnte??

Danke vorab.

PHP-Code:

$mydir    "../../../Volumes/Server";






function 
read_dir($dir){
    
$root opendir($dir);
    while (
$files readdir($root)) 
  {
        if(
$files != "." && $files != ".." && $files != ".DS_Store")
        {
          if(
is_dir("/".$dir."/".$files))
      {
              echo 
"/".$dir."/".$files."<br>";
                
read_dir("/".$dir."/".$files);
           }
        else
          {
            echo 
"File -> "."/".$dir."/".$files."<br>";
           }
        }
    }
            
closedir($root); 
        } 

read_dir($mydir); 


penizillin 04-06-2007 15:26

warum veränderst du ja auch den dateinamen, bevor du ihn an is_dir übergibst?

wahsaga 04-06-2007 15:28

Nun, den Verzeichnisnamen mit an is_dir() zu übergeben, ist natürlich richtig.

Nur bezweifle ich irgendwie, ob das mit dem führenden Slash so eine gute Idee ist ...

kakktus 04-06-2007 15:34

Zitat:

Nur bezweifle ich irgendwie, ob das mit dem führenden Slash so eine gute Idee ist ...
Hmm, habe es aber auch schon ohne führendes slash probiert, leider auch ohne Erfolg.

EDIT:echo "File -> "."/". <-is natürlich quatsch;) Ist beim riumtesten dazwischen geraten...

penizillin 04-06-2007 15:36

"ohne erfolg" ist keine problembeschreibung.
wenn du dir den dateinamen ausgeben würdest, den du an is_dir übergibst, würdest du sehen, was du daran falsch machst.

wahsaga 04-06-2007 15:37

Zitat:

Original geschrieben von kakktus
Hmm, habe es aber auch schon ohne führendes slash probiert, leider auch ohne Erfolg.
Es sagte ja auch niemand, dass du einfach wild herumraten sollst, bis sich irgendwann zufällig irgendeine Kombination als richtig herausstellt.

kakktus 04-06-2007 15:40

Also ich rate nicht einfach rum, aber das mit dem fürenden slash hatte ich im Zuge meines Problems in einem anderen Forum gelesen.
So, das dazu.

Zitat:

wenn du dir den dateinamen ausgeben würdest, den du an is_dir übergibst, würdest du sehen, was du daran falsch machst.
Habe ich auch und leider meinen Fehler nicht erkannt. Aber vielleicht bist du ja so nett und hilfst mir auf die Sprünge.

penizillin 04-06-2007 15:42

wenn du zeigst, was herauskam...

kakktus 04-06-2007 15:49

So habe ich es jetzt:

PHP-Code:

function read_dir($dir){
    
$root opendir($dir);
    while (
$files readdir($root)) 
  {
        if(
$files != "." && $files != ".." && $files != ".DS_Store")
        {
           echo 
$dir."/".$files."<br>";
          if(
is_dir("/".$dir."/".$files))
      {
                
read_dir($dir."/".$files);
           }
        else
          {
            echo 
"File -> ".$dir."/".$files."<br>";
           }
        }
    }
            
closedir($root); 
        } 

read_dir($mydir); 


Das kommt raus. Wobei das alles Ordner mit unterordnern sind
PHP-Code:

../../../Volumes/Server/Data
File 
-> ../../../Volumes/Server/Data
../../../Volumes/Server/Kunden
File 
-> ../../../Volumes/Server/Kunden
../../../Volumes/Server/Stuff
File 
-> ../../../Volumes/Server/Stuff
...
... 


penizillin 04-06-2007 15:50

hint: du gibts nicht das aus, was du an is_dir übergibst.

Zitat:

Original geschrieben von kakktus
Also ich rate nicht einfach rum, aber das mit dem fürenden slash hatte ich im Zuge meines Problems in einem anderen Forum gelesen.
das _ist_ herumraten.

kakktus 04-06-2007 15:54

hä?? ach mist.. ein / zuviel ..stimmt, sorry.
Oder was meinst du??

Zitat:

das _ist_ herumraten.
Na nenn es so, ok aber was soll ich deiner meinung nach machen??:confused:

penizillin 04-06-2007 15:55

genau. und was schließt du jetzt daraus? schau dir den pfad noch mal genau an.

kakktus 04-06-2007 15:56

ja aber ohne slash geht es genau so wenig.
die habe ich ja erst davor gesetzt weil es ohne nicht ging.
Darauf hin habe ich ja auch erst "rumgeraten"

penizillin 04-06-2007 15:58

"geht es genausowenig" ist keine problembeschreibung.

testausgaben machen und zeigen, file_exists() anwenden, mit dem absoluten pfad vergleichen (getcwd())

kakktus 04-06-2007 16:12

Zitat:

"geht es genausowenig" ist keine problembeschreibung.
Die Problembeschreibung habe ich doch oben schon gegeben und ist bis dato unverändert;)

Habe es jetzt so gemacht:
PHP-Code:


echo "getcwd -> ".getcwd()."<br><br>";

function 
read_dir($dir){
    
$root opendir($dir);
    while (
$files readdir($root)) 
  {
        if(
$files != "." && $files != ".." && $files != ".DS_Store")
        {
          
           echo 
$dir."/".$files."<br>";
           
           if (
file_exists($dir."/".$files)) {
          echo 
"File exsit ".$dir."/".$files;
        } 
        else 
        {
         echo 
"No File exsit".$dir."/".$files."<br>";
        }
        
          if(
is_dir($dir."/".$files))
      {

                
read_dir($dir."/".$files);
           }
        else
          {
            echo 
"File -> ".$dir."/".$files."<br>";
           }
        }
    }
            
closedir($root); 
        } 

read_dir($mydir); 

Hoffe, dass du es so meintest.

ausgabe



PHP-Code:

getcwd -> /Library/WebServer/Documents


../../../Volumes/Volumes/Server/Data
No File exsit
../../../Volumes/Volumes/Server/Data
File 
-> ../../../Volumes/Volumes/Server/Data
../../../Volumes/Volumes/Server/Kunden
No File exsit
../../../Volumes/Volumes/Server/Kunden
File 
-> ../../../Volumes/Volumes/Server/Kunden 



Alle Zeitangaben in WEZ +2. Es ist jetzt 11:19 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG