Anzeige

scandir nutzen aber wie?

scandir nutzen aber wie? | PSD-Tutorials.de

Erstellt von rey, 09.10.2007.

  1. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    scandir nutzen aber wie?
    hi,
    ich habe mir ne php Erweiterung Installiert das Problem ist ich weiß jetzt nicht wie ich diese mit scandir verbinde.
    Die erweterung emöglicht es daten aus einer .rep datei auszulesen.
    allerdings zu mir einem Absoluten Pfad . Ich wollte es jetzt Dynamsicher machen und zwar. via scandir alle dateien Auflisten die .rep enden und dazughörige daten ebenfals auslesen. und wenn ich drauf klicke auf den dateinamen soll die gesamten daten zu der einen .rep datei anzeigen.
    PHP:
    1. <?php
    2.     $info = php_bw_load_replay("C:\\Programme\\StarCraft\\maps\\replays\\ffow udn fun gebasht.rep");
    3.     if($info->ErrorCode != 0)
    4.         die("Could not load the replay ! Message : " . $info->ErrorString);
    5.  
    6.     echo "<br>Date :"   . $info->GameDate;
    7.         echo "<br>Number of Players :"  . $info->NumPlayer;
    8.     echo "<br>Teams :"  . $info->Teams;
    9.     echo"<br>Observer:" . $info->IsObserver;
    10.     echo "<br>matchup :"    . $info->Matchup;
    11.     echo "<br>Duration : " . $info->GameLength;
    12.     echo"<br>Type: " .$info->GameType;
    13.     echo "<br>Players info : <br>";
    14.     foreach($info->Players as $player)
    15.         echo $player->Name . " : " . $player->RaceName . ", " . $player->IsObserver   . ","  . $player->ColorName  . "," . $player->APM . "APM.<br>";
    16. ?>
    das is das script für den absoluten pfad jetzt würde er mir den Spielernamen , Das Datum die anzahl der Spieler was für ein typ etc. anzeigen.

    wenn ich scandir jetzt einbinden möchte. wen ich es so mache geht es aber nicht
    PHP:
    1. <?php
    2. $dir = "replays/";
    3. $dh  = opendir($dir);
    4. while (false !== ($filename = readdir($dh))) {
    5.     $files[] = $filename;
    6. }
    7.  
    8. sort($files);
    9.  
    10.  
    11. print_r($files);
    12.  
    13.  
    14.     $info = php_bw_load_replay($files);
    15.     if($info->ErrorCode != 0)
    16.         die("Could not load the replay ! Message : " . $info->ErrorString);
    17.  
    18.     echo "<br>Date :"   . $info->GameDate;
    19.         echo "<br>Number of Players :"  . $info->NumPlayer;
    20.     echo "<br>Teams :"  . $info->Teams;
    21.     echo"<br>Observer:" . $info->IsObserver;
    22.     echo "<br>matchup :"    . $info->Matchup;
    23.     echo "<br>Duration : " . $info->GameLength;
    24.     echo"<br>Type: " .$info->GameType;
    25.     echo "<br>Players info : <br>";
    26.     foreach($info->Players as $player)
    27.         echo $player->Name . " : " . $player->RaceName . ", " . $player->IsObserver   . ","  . $player->ColorName  . "," . $player->APM . "APM.<br>";
    28. ?>
    komtm das hier
    so sollte er mir alle Dateien untereinander anzeigen und folgende daten auslesen Spieldatum und den Matchup aber irgendwie geht nicht ;)
     
    Zuletzt bearbeitet: 09.10.2007
    #1      
  2. mp17

    mp17 Aktives Mitglied

    Dabei seit:
    14.06.2006
    Beiträge:
    357
    Geschlecht:
    männlich
    scandir nutzen aber wie?
    AW: scandir nutzen aber wie?

    naja du lädst nen array rein, wo nen string erwartet wird. du musst das mit ner schleife lösen:

    PHP:
    1.  
    2. <?php
    3. $dir = "replays/";
    4. $dh  = opendir($dir);
    5. while (false !== ($filename = readdir($dh))) {
    6.     $files[] = $filename;
    7. }
    8.  
    9. sort($files);
    10.  
    11.  
    12. print_r($files);
    13.  
    14. for($i=0;$i<sizeof($files);$i++){
    15.     $info = php_bw_load_replay($files[$i]);
    16.     if($info->ErrorCode != 0)
    17.         die("Could not load the replay ! Message : " . $info->ErrorString);
    18.  
    19.     echo "<br>Date :"    . $info->GameDate;
    20.         echo "<br>Number of Players :"    . $info->NumPlayer;
    21.     echo "<br>Teams :"    . $info->Teams;
    22.     echo"<br>Observer:" . $info->IsObserver;
    23.     echo "<br>matchup :"    . $info->Matchup;
    24.     echo "<br>Duration : " . $info->GameLength;
    25.     echo"<br>Type: " .$info->GameType;
    26.     echo "<br>Players info : <br>";
    27.     foreach($info->Players as $player)
    28.         echo $player->Name . " : " . $player->RaceName . ", " . $player->IsObserver   . ","  . $player->ColorName  . "," . $player->APM . "APM.<br>";
    29. }
    30. ?>
    31.  
     
    #2      
  3. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    scandir nutzen aber wie?
    AW: scandir nutzen aber wie?

    es kommt Could not load the replay ! Message : Permission denied
     
    #3      
  4. mp17

    mp17 Aktives Mitglied

    Dabei seit:
    14.06.2006
    Beiträge:
    357
    Geschlecht:
    männlich
    scandir nutzen aber wie?
    AW: scandir nutzen aber wie?

    Dann stimmt was mit der ersten Datei nicht...
     
    #4      
  5. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    scandir nutzen aber wie?
    AW: scandir nutzen aber wie?

    hab alle dateien geprüft die gehen alle.
    die Dateien sind in nem unterordner der replays heisst
    deshalb an dem dir kanns ja nicht liegen.
     
    #5      
  6. mp17

    mp17 Aktives Mitglied

    Dabei seit:
    14.06.2006
    Beiträge:
    357
    Geschlecht:
    männlich
    scandir nutzen aber wie?
    AW: scandir nutzen aber wie?

    achso lol jetzt seh ichs:
    Array ( [0] => . [1] => .. [2] => 1v1Sieg.rep [3] => 2v2Sieg.rep [4] => Rematch.rep [5] => 3v3Low.rep [6] => repcache )

    in element 0 und 1 sind nur die . und .. verzeichnisse gelistet lol also musst du quasi bei element 2 anfangen, das wäre dann so:

    PHP:
    1.  
    2. for($i=2;$i<sizeof($files);$i++){
    3.  
     
    #6      
  7. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    scandir nutzen aber wie?
    AW: scandir nutzen aber wie?

    er sagt
    [6] => repcache ) Could not load the replay ! Message : No such file or directory

    hm.. da passt irgendwas net
     
    Zuletzt bearbeitet: 09.10.2007
    #7      
  8. mp17

    mp17 Aktives Mitglied

    Dabei seit:
    14.06.2006
    Beiträge:
    357
    Geschlecht:
    männlich
    scandir nutzen aber wie?
    AW: scandir nutzen aber wie?

    ja komm jetzt kannste aber auch mal anfangen selber zu denken... alter ei..
    also element 6, scheint falsch zu sein, was könnte man denn da machen ?

    das zB:
    PHP:
    1.  
    2. for($i=2;$i<sizeof($files)--;$i++){
    3.  
     
    #8      
  9. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    scandir nutzen aber wie?
    AW: scandir nutzen aber wie?

    Array ( [0] => . [1] => .. [2] => 1v1Sieg.rep [3] => 2v2Sieg.rep [4] => Rematch.rep [5] => 3v3Low.rep [6] => repcache )Could not load the replay ! Message : No such file or directory
    das hat doch net zu heisst das elemnt 6 falsch ist oder etwa doch wenn ich -- das hinzufüge heisst es die zeile sei falsch
    ne das liegt an etwas anderem
    glaube nicht das es an der schleife liegt!
     
    #9      
  10. mp17

    mp17 Aktives Mitglied

    Dabei seit:
    14.06.2006
    Beiträge:
    357
    Geschlecht:
    männlich
    scandir nutzen aber wie?
    AW: scandir nutzen aber wie?

    Mach es einfach mal so:

    PHP:
    1.  
    2. <?php
    3. $dir = "replays/";
    4. $dh  = opendir($dir);
    5. while (false !== ($filename = readdir($dh))) {
    6.     $files[] = $filename;
    7. }
    8.  
    9. sort($files);
    10.  
    11.  
    12. print_r($files);
    13.  
    14. for($i=2;$i<sizeof($files)--;$i++){
    15.     $info = php_bw_load_replay($files[$i]);
    16.     if($info->ErrorCode != 0)
    17.         die("Could not load the replay ! Message : " . $info->ErrorString);
    18.  
    19.     echo "<br>Date :"    . $info->GameDate;
    20.         echo "<br>Number of Players :"    . $info->NumPlayer;
    21.     echo "<br>Teams :"    . $info->Teams;
    22.     echo"<br>Observer:" . $info->IsObserver;
    23.     echo "<br>matchup :"    . $info->Matchup;
    24.     echo "<br>Duration : " . $info->GameLength;
    25.     echo"<br>Type: " .$info->GameType;
    26.     echo "<br>Players info : <br>";
    27.     foreach($info->Players as $player)
    28.         echo $player->Name . " : " . $player->RaceName . ", " . $player->IsObserver   . ","  . $player->ColorName  . "," . $player->APM . "APM.<br>";
    29. }
    30. ?>
    31.  
    Und falls da nen Fehler kommt, schreib die genaue Fehlermeldung hier rein.
     
    #10      
  11. rey

    rey Der Frager ;)

    Dabei seit:
    26.06.2006
    Beiträge:
    836
    Geschlecht:
    männlich
    Software:
    3Ds Max, Maya
    Kameratyp:
    Canon 50D
    scandir nutzen aber wie?
    AW: scandir nutzen aber wie?

    hat sich erledigt so gehts
    PHP:
    1.  
    2. <?php
    3.  
    4. chdir('replays/');
    5. $repfiles = glob("*.rep");
    6.  
    7. foreach($repfiles as $repfile)
    8. {
    9.  $aktueller_pfad = getcwd();
    10.  $info = php_bw_load_replay($aktueller_pfad."/".$repfile);
    11.     if($info->ErrorCode != 0)
    12.         die("Could not load the replay ! Message : " . $info->ErrorString);
    13.    
    14.     echo "<br>Date :"    . $info->GameDate;
    15.         echo "<br>Number of Players :"    . $info->NumPlayer;
    16.     echo "<br>Teams :"    . $info->Teams;
    17.     echo"<br>Observer:" . $info->IsObserver;
    18.     echo "<br>matchup :"    . $info->Matchup;
    19.     echo "<br>Duration : " . $info->GameLength;
    20.     echo"<br>Type: " .$info->GameType;
    21.     echo"<br> Download: <a href=replays/$repfile> Download</a>";
    22.  echo"<br> Details: <a href=\"php_bw_load_replay.php?path=$repfile\">Details</a>";  
    23.      echo "<br>Players info : <br>";
    24.     foreach($info->Players as $player)
    25.         echo $player->Name . " : " . $player->RaceName . ", " . $player->IsObserver   . ","  . $player->ColorName  . "," . $player->APM . "APM.<br>";
    26. }
    27. ?>
     
    #11      
x
×
×